Mengompilasi program Hello World sederhana di OS X melalui baris perintah

102

Saya punya contoh hello world sederhana yang saya coba kompilasi di OS X, bernama hw.cpp:

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

Saya ingin mengkompilasinya menggunakan gcc, tetapi saya tidak berhasil. Saya juga ingin mendengar opsi lainnya, seperti menggunakan Xcode?

erikvold
sumber
7
"Tidak berhasil" tidak benar-benar membantu siapa pun mendiagnosis masalah Anda.
Gareth Davidson

Jawaban:

191

Mencoba

g++ hw.cpp
./a.out

g++adalah frontend compiler C ++ ke GCC.
gccadalah frontend compiler C ke GCC.

Ya, Xcode jelas merupakan sebuah pilihan. Ini adalah IDE GUI yang dibangun di atas GCC.

Meskipun saya lebih suka pendekatan yang sedikit lebih bertele-tele:

#include <iostream>

int main()
{
    std::cout << "Hello world!" << std::endl;
}
Martin York
sumber
17
@ math: return 0tersirat di main.
fredoverflow
3
@mathepic: dan +1. Ini tidak diperlukan dalam C ++. Jika mainmencapai akhir fungsi tanpa mencapai pengembalian maka secara implisit mengembalikan 0.
Martin York
2
Ahh, oke. Saya masih akan menggunakannya untuk kejelasan.
alternatif
4
@mathepic: Itu 1 opini. Secara pribadi saya merasa lebih jelas untuk tidak menggunakannya.
Martin York
1
Kenapa a.out? Di jendela saya berharap untuk melihat a.exe. Di * nix kami tidak membutuhkan ekstensi. Mengapa menggunakan .out tanpa ekstensi? aadalah nama default yang aneh juga.
P. Brian.Mackey
36
g++ hw.cpp -o hw
./hw
tak seorangpun
sumber
Dari semua yang lain, yang ini berhasil dengan baik untuk saya. Terima kasih.
Bruno Recillas
10
user@host> g++ hw.cpp
user@host> ./a.out
Sam Miller
sumber
5

Mengompilasinya dengan gccmengharuskan Anda untuk memberikan sejumlah opsi baris perintah. Gabungkan dengan g++.

Ignacio Vazquez-Abrams
sumber
2

Versi baru ini akan berbunyi seperti ini:

xcrun g++ hw.cpp
./a.out
Badmanchild
sumber
Ini memberi sayald: 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)
Eddified
@ Rat-a-tat-a-tat maaf saya tidak ingat, 3 tahun yang lalu.
Diedit
1

Anda tidak menentukan kesalahan yang Anda lihat.

Apakah masalah yang gccmemberi Anda kesalahan, atau Anda tidak dapat berjalan gccsama sekali?

Jika ini yang terakhir, penjelasan yang paling mungkin adalah Anda tidak mencentang "Dukungan Pengembangan UNIX" saat Anda menginstal alat pengembangan, sehingga file executable baris perintah tidak diinstal di jalur Anda. Instal ulang alat pengembangan, dan pastikan untuk mengklik "sesuaikan" dan centang kotak itu.

Stephen Canon
sumber
1

Selain itu, Anda dapat menggunakan IDE seperti CLion (JetBrains) atau editor teks seperti Atom, dengan plugin gpp-compiler, berfungsi seperti pesona (F5 untuk mengkompilasi & mengeksekusi).

José Rojas
sumber
1

Gunakan berikut ini untuk beberapa file .cpp

g++ *.cpp
./a.out
wLc
sumber