Bagaimana saya bisa mengkompilasi / menjalankan C atau C ++ di Unix console atau terminal Mac?
(Aku tahu itu, lupakan saja, dan pelajari kembali. Waktu untuk menuliskannya.)
Jika ini adalah program sumber tunggal sederhana:
make foo
di mana file sumbernya adalah foo.c atau foo.cpp, dll.
Anda bahkan tidak perlu makefile. Make memiliki cukup aturan bawaan untuk membuat file sumber Anda menjadi executable dengan nama yang sama, minus ekstensi.
Menjalankan executable yang baru saja dibangun sama dengan menjalankan program apa pun - tetapi Anda paling sering perlu menentukan path ke executable karena shell hanya akan mencari apa yang ada di dalam $PATH
untuk menemukan executable, dan paling sering itu tidak termasuk direktori saat ini ( .
).
Jadi untuk menjalankan executable yang dibangun foo
:
./foo
make main.cpp
, tapimake main
.sumber
Undefined symbols for architecture x86_64
masalah, saya memodifikasi perintah sebagai berikut:,gcc -lstdc++ main.cpp -o main.out
dan itu berfungsi pada Mac saya. via tautan: stackoverflow.com/questions/11852568/…Ini adalah perintah yang berfungsi pada semua mesin Unix ... Saya menggunakannya di Linux / Ubuntu, tetapi juga berfungsi di OS X. Ketikkan perintah berikut di Terminal.app .
-o
adalah huruf O bukan nollab21
akan menjadi file yang dapat dieksekusiiterative.cpp
adalah file c ++ AndaSetelah Anda menjalankan perintah itu ketikkan terminal berikut ini untuk menjalankan program Anda:
sumber
Dua langkah untuk saya:
pertama:
kemudian:
sumber
./foo
tidak tahu bagaimana jawaban yang diterima tidak memiliki bagian perintah yang penting iniSemua eksekusi aplikasi di lingkungan Unix (Linux, Mac OS X, AIX, dll.) Tergantung pada jalur pencarian yang dapat dieksekusi.
Anda dapat menampilkan jalur ini di terminal dengan perintah ini:
Pada Mac OS X (secara default) ini akan menampilkan jalur pencarian yang dipisahkan titik dua berikut:
Jadi setiap executable di direktori yang terdaftar dapat dijalankan hanya dengan mengetikkan namanya. Sebagai contoh:
Ini menjalankan
/bin/cat
dan menampilkan mytextfile.txt ke terminal.Untuk menjalankan perintah lain yang tidak ada dalam jalur pencarian yang dapat dieksekusi, Anda harus memenuhi syarat untuk dapat dieksekusi. Jadi katakanlah saya mempunyai executable bernama MyProgram di direktori home saya di Mac OS XI yang dapat sepenuhnya memenuhi syarat seperti:
Jika Anda berada di lokasi yang dekat dengan program yang ingin Anda jalankan, Anda dapat memenuhi syarat nama dengan jalur parsial. Misalnya, jika
MyProgram
berada di direktori/Users/oliver/MyProject
I dan saya berada di direktori home saya, saya dapat memenuhi syarat nama yang dapat dieksekusi seperti ini, dan menjalankannya:Atau katakan saya berada di direktori
/Users/oliver/MyProject2
dan saya ingin menjalankan/Users/oliver/MyProject/MyProgram
saya dapat menggunakan jalur relatif seperti ini, untuk menjalankannya:Demikian pula jika saya berada di direktori yang sama dengan
MyProgram
saya harus menggunakan jalur relatif "direktori saat ini". Direktori saat ini Anda berada adalah karakter periode diikuti dengan garis miring. Sebagai contoh:Untuk menentukan direktori yang sedang Anda gunakan gunakan
pwd
perintah ini.Jika Anda biasanya meletakkan program di hard disk Anda yang ingin Anda jalankan tanpa harus menyebutkan nama mereka. Misalnya, jika Anda memiliki direktori "bin" di direktori home Anda untuk skrip shell yang digunakan secara teratur dari program lain, mungkin bijaksana untuk mengubah jalur pencarian yang dapat dieksekusi.
Ini bisa dilakukan dengan mudah dengan membuat atau mengedit
.bash_profile
file yang ada di direktori home Anda dan menambahkan baris:Di sini karakter tilde (~) digunakan sebagai jalan pintas untuk / Users / oliver. Perhatikan juga bahwa baris hash bang (#!) Harus menjadi baris pertama dari file (jika belum ada). Perhatikan juga bahwa teknik ini mengharuskan shell login Anda menjadi bash (default pada Mac OS X dan sebagian besar distribusi Linux). Perhatikan juga bahwa jika Anda ingin agar program Anda yang diinstal
~/bin
digunakan untuk preferensi pada sistem yang dapat dieksekusi, Anda harus menyusun ulang pernyataan ekspor sebagai berikut:sumber
Ryan, saya mengubah ini menjadi jawaban daripada komentar, karena sepertinya saya terlalu singkat. Lakukan semua ini di "Terminal".
Untuk menggunakan kompiler G ++, Anda perlu melakukan ini:
Arahkan ke direktori tempat Anda menyimpan file * .cpp.
cd ~/programs/myprograms/
(~ adalah jalan pintas untuk rumah Anda, yaitu / Users / Ryan / programs / myprograms /, ganti dengan lokasi yang sebenarnya Anda gunakan.)
Kompilasi
g++ input.cpp -o output.bin
(output.bin dapat berupa apa saja dengan ekstensi apa pun, sungguh. bin hanya umum di unix.)Seharusnya tidak ada yang dikembalikan jika berhasil, dan tidak apa - apa . Umumnya Anda mendapatkan pengembalian atas kegagalan.
Namun, jika Anda mengetik
ls
, Anda akan melihat daftar file di direktori yang sama. Misalnya Anda akan melihat folder lain, input.cpp dan output.binDari dalam direktori, sekarang jalankan dengan
./outbut.bin
sumber
make
tidak akan bekerja karena tidak ada makefile.Cara ringkas untuk melakukan itu bisa berupa:
Senang memiliki one-liner sehingga Anda dapat menjalankan kembali executable Anda dengan mudah.
sumber
Dengan asumsi direktori saat ini tidak ada di jalur, sintaksnya adalah
./[name of the program]
.Sebagai contoh
./a.out
sumber
Tambahkan berikut ini untuk mendapatkan peringatan terbaik, Anda tidak akan menyesalinya. Jika Anda bisa, kompilasi WISE (peringatan salah)
sumber
Untuk mengkompilasi program C atau C ++, ada perintah umum:
make filename
./filename
make akan membuat file sumber Anda menjadi file yang dapat dieksekusi dengan nama yang sama. Tetapi jika Anda ingin menggunakan cara standar, Anda bisa menggunakan kompiler gcc untuk membangun program C & g ++ untuk c ++
Untuk C:
Untuk C ++:
sumber
Gunakan a
makefile
. Bahkan untuk proyek yang sangat kecil (= satu file), upaya tersebut mungkin sepadan karena Anda dapat memiliki beberapa set pengaturan kompiler untuk menguji berbagai hal. Debugging dan deployment bekerja lebih mudah dengan cara ini.Baca
make
manual , tampaknya cukup lama pada pandangan pertama tetapi sebagian besar Anda hanya bisa membaca sekilas. Secara keseluruhan, saya butuh beberapa jam dan membuat saya jauh lebih produktif.sumber
Saya menemukan tautan ini dengan arah:
http://www.wesg.ca/2007/11/how-to-write-and-compile-c-programs-on-mac-os-x/
Pada dasarnya Anda melakukannya:
sumber
gcc hello.c -o a.out
? Yang melakukan hal yang sama dengangcc hello.c
.cukup masukkan di direktori di mana file c / cpp Anda.
untuk mengkompilasi dan menjalankan kode c.
untuk mengkompilasi dan menjalankan kode c ++.
"$" adalah simbol terminal mac default
sumber
Untuk mengkompilasi dan menjalankan kode sumber cpp dari terminal Mac kita perlu melakukan hal berikut:
sumber
Menjalankan file .C menggunakan terminal adalah proses dua langkah. Langkah pertama adalah mengetikkan gcc di terminal dan menjatuhkan file .C ke terminal, lalu tekan Enter:
Di langkah kedua, jalankan perintah berikut:
sumber
Untuk menjalankan file c ++, jalankan perintah di bawah ini, Mengasumsikan nama file adalah "main.cpp"
1.Compile untuk membuat file objek dari file c ++.
2. Karena
#include <conio.h>
tidak mendukung di MacOS maka kita harus menggunakan alternatifnya yang mendukung di Mac#include <curses.h>
. Sekarang file objek perlu dikonversi ke file yang dapat dieksekusi. Untuk menggunakancurses.h
kita harus menggunakan perpustakaan-lcurses
.3. Sekarang jalankan executable.
sumber