Compilation d'un programme simple Hello World sur OS X via la ligne de commande

97

J'ai un exemple simple Hello World que j'essaie de compiler sur OS X, nommé hw.cpp:

#include <iostream>
#include <string>
using namespace std;
int main() {
  cout << "Hello world!" << endl;
  return 0;
}

J'aimerais le compiler en utilisant gcc, mais je n'ai pas eu de succès. J'aimerais aussi entendre les autres options, comme utiliser Xcode?

Erikvold
la source
7
«Aucun succès» n'aide vraiment personne à diagnostiquer votre problème.
Gareth Davidson

Réponses:

183

Essayer

g++ hw.cpp
./a.out

g++est l'interface du compilateur C ++ vers GCC.
gccest l'interface du compilateur C vers GCC.

Oui, Xcode est définitivement une option. C'est un IDE GUI qui est construit sur GCC.

Bien que je préfère une approche légèrement plus verbeuse:

#include <iostream>

int main()
{
    std::cout << "Hello world!" << std::endl;
}
Martin York
la source
17
@math: return 0est implicite dans main.
fredoverflow
3
@mathepic: et le +1. Ce n'est pas obligatoire en C ++. Si mainatteint la fin de la fonction sans toucher de retour, il renvoie implicitement 0.
Martin York
2
Ahh d'accord. Je l'utiliserais toujours pour plus de clarté.
alternatif
4
@mathepic: C'est 1 opinion. Personnellement, je trouve plus clair de ne pas l'utiliser.
Martin York
1
Pourquoi a.out? Dans les fenêtres, je m'attends à voir a.exe. Dans * nix, nous n'avons pas besoin d'extensions. Pourquoi utiliser .out sur aucune extension? aest aussi un nom par défaut étrange.
P.Brian.Mackey
35
g++ hw.cpp -o hw
./hw
personne
la source
Parmi tous les autres, celui-ci a très bien fonctionné pour moi. Merci.
Bruno Recillas
10
user@host> g++ hw.cpp
user@host> ./a.out
Sam Miller
la source
5

Le compiler avec gccvous oblige à passer un certain nombre d'options de ligne de commande. Compilez-le g++plutôt avec .

Ignacio Vazquez-Abrams
la source
2

La nouvelle version de ceci devrait se lire comme ceci:

xcrun g++ hw.cpp
./a.out
Badmanchild
la source
Cela me donneld: can't link with a main executable file './a.out' for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation)
Modifié le
@ Rat-a-tat-a-tat désolé je ne me souviens pas, c'était il y a 3 ans.
Édité le
1

Vous n'avez pas précisé quelle est l'erreur que vous voyez.

Est-ce que le problème gccvous donne une erreur ou que vous ne pouvez pas du tout exécuter gcc?

Si c'est le dernier cas, l'explication la plus probable est que vous n'avez pas coché "UNIX Development Support" lorsque vous avez installé les outils de développement, donc les exécutables de ligne de commande ne sont pas installés dans votre chemin. Réinstallez les outils de développement et assurez-vous de cliquer sur «personnaliser» et de cocher cette case.

Stephen Canon
la source
1

En outre, vous pouvez utiliser un IDE comme CLion (JetBrains) ou un éditeur de texte comme Atom, avec le plugin gpp-compiler, fonctionne comme un charme (F5 pour compiler et exécuter).

José Rojas
la source
1

Utilisez ce qui suit pour plusieurs fichiers .cpp

g++ *.cpp
./a.out
wLc
la source