compilador para c ++ (pensei que era g ++?)


2

Depois de instalar as 'Developer Tools' no DVD de instalação do Mac OS, agora posso executar gcc /path/to/input/e criar um shell script executável a partir do código .c.

Eu pensei que o compilador C ++ para criar executáveis ​​era g ++, mas quando tento usá-lo para compilar arquivos .cpp: 'g ++ / path / to / file /' ele cria o arquivo a.out esperado, mas quando tento executar o novo arquivo, meu computador usa 'Saturn' por padrão para abrir 'a.out' e diz que não pode abrir o arquivo ...

O que é Saturno e por que não pode abrir 'a.out'?

Além disso, devo usar o g ++ para compilar arquivos C ++ ou existe um compilador melhor que eu poderia estar usando para isso (além do XCode)?


2
Tenteg++ directory/file.cpp -o file
Tomer Vromen

alguns compiladores C ++ usam como padrão arquivos .so ou .dll em tempo de execução, como construção de objetos ou manipulação de exceções. Parece que sim. Nesse caso, provavelmente há uma opção que você pode colocar no comando para fazer com que as bibliotecas sejam estaticamente vinculadas ao seu executável.
18712 J justffff

Respostas:


2

Provavelmente tem algo a ver com a extensão do arquivo. Talvez o programa Saturn seja o aplicativo padrão para executar esse tipo de arquivo por algum motivo. Digite isso no shell depois de navegar para o diretório em que o arquivo está: ./a.out e deixe-me saber o que acontece. Como sugerido por Tomer, se você remover a extensão * .out deve abrir automaticamente a partir do shell, eu acho.


se você deseja abrir o arquivo clicando duas vezes nele, defina seu aplicativo padrão como Terminal
rubixibuc

0

sim, a idéia de Tomer funcionou, foi isso. Ainda não tenho certeza do que Saturn é (provavelmente um ambiente de GUI para C ++), mas isso não importa para essa pergunta, porque o terminal executa o arquivo C ++ compilado agora, graças a um muitos!

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.