Yanıtlar:
Basit tek kaynaklı bir programsa:
make foo
burada kaynak dosya foo.c veya foo.cpp vb.
Bir makyaj dosyasına bile ihtiyacınız yok. Make, kaynak dosyanızı eksi uzantı ile aynı adlı bir yürütülebilir dosyaya oluşturmak için yeterli yerleşik kurala sahiptir.
Sadece inşa edilen yürütülebilir dosyayı çalıştırmak herhangi bir programı çalıştırmakla aynıdır - ancak kabuk yalnızca $PATH
yürütülebilir dosyaları bulmak için neler olduğunu ve çoğunlukla geçerli dizini içermeyen (örneğin, geçerli dizini içermeyen) yürütülebilir dosyanın yolunu belirtmeniz gerekir. .
).
Böylece, inşa edilebilir yürütülebilir dosyayı çalıştırmak için foo
:
./foo
make main.cpp
, ama make main
.
gcc main.cpp -o main.out
./main.out
Undefined symbols for architecture x86_64
: sorundan ben şöyle komutunu değiştirmek gcc -lstdc++ main.cpp -o main.out
ve benim Mac üzerinde olduğu eserler. bağlantı yoluyla: stackoverflow.com/questions/11852568/…
Bu, tüm Unix makinelerinde çalışan komuttur ... Linux / Ubuntu üzerinde kullanıyorum, ancak OS X'te de çalışıyor. Terminal.app dosyasına aşağıdaki komutu yazın .
$ g++ -o lab21 iterative.cpp
-o
O harfi sıfır değil
lab21
yürütülebilir dosyanız olacak
iterative.cpp
c ++ dosyanız mı
Bu komutu çalıştırdıktan sonra, programınızı çalıştırmak için terminalde aşağıdakileri yazın:
$ ./lab21
Benim için iki adım:
ilk:
make foo
sonra:
./foo
./foo
dunno nasıl kabul edilir cevabının bu önemli emir yok
Unix (Linux, Mac OS X, AIX, vb.) Ortamındaki tüm uygulama yürütmeleri yürütülebilir arama yoluna bağlıdır.
Bu yolu terminalde şu komutla görüntüleyebilirsiniz:
echo $ PATH
Mac OS X'te (varsayılan olarak) bu, iki nokta üst üste işaretiyle ayrılmış arama yolunu görüntüler:
/ Usr / bin: / bin: / usr / sbin / sbin: / usr / local / bin: / usr / X11 / bin
Bu nedenle, listelenen dizinlerdeki yürütülebilir dosyalar yalnızca adlarını yazarak çalıştırılabilir. Örneğin:
cat mytextfile.txt
Bu çalıştırılır /bin/cat
ve terminalde mytextfile.txt dosyasını görüntüler.
Yürütülebilir arama yolunda olmayan başka bir komutu çalıştırmak için yürütülebilir dosyanın yolunu nitelemeniz gerekir. Diyelim ki Mac OS XI'deki ana dizinimde MyProgram adlı bir yürütülebilir dosya vardı, tam olarak şöyle niteleyebilir:
/ Users / Oliver / MyProgram
Yürütmek istediğiniz programın yakınında bir konumdaysanız, adı kısmi bir yolla niteleyebilirsiniz. Örneğin, eğer MyProgram
dizin oldu /Users/oliver/MyProject
I ve ben böyle çalıştırılabilir adını nitelemek ve bu yürütmek olabilir benim ev dizininde oldu:
MyProject / MyProgram
Ya da dizinde /Users/oliver/MyProject2
olduğumu ve yürütmek istediğimi /Users/oliver/MyProject/MyProgram
söylemek için, bu gibi göreceli bir yolu kullanabilirsiniz, yürütmek için:
../MyProject/MyProgram
Benzer şekilde ben "aynı MyProgram
dizin" göreceli yol kullanmanız gerekir aynı dizindeyseniz. İçinde bulunduğunuz dizin nokta karakterinin ardından bir eğik çizgi gelir. Örneğin:
./MyProgram
Şu anda hangi dizinde olduğunuzu belirlemek için pwd
komutu kullanın.
Programları genellikle sabit diskinizde adlarını nitelemek zorunda kalmadan çalıştırmak istediğiniz bir yere koyuyorsanız. Örneğin, ana dizininizde diğer programların düzenli olarak kullanılan kabuk komut dosyaları için bir "bin" dizininiz varsa, yürütülebilir arama yolunuzu değiştirmeniz akıllıca olabilir.
Bu, .bash_profile
ana dizininizdeki mevcut dosyayı oluşturup düzenleyerek ve satırları ekleyerek kolayca yapılabilir:
#!/bin/sh
export PATH=$PATH:~/bin
Burada tilde (~) karakteri / Users / oliver için kısayol olarak kullanılıyor. Ayrıca, hash bang (#!) Satırının dosyanın ilk satırı olması gerektiğini unutmayın (zaten yoksa). Ayrıca bu tekniğin giriş kabuğunuzun bash (Mac OS X ve çoğu Linux dağıtımında varsayılan) olmasını gerektirdiğini unutmayın. Ayrıca, yüklü programlarınızın ~/bin
sistem yürütülebilir dosyaları yerine kullanılmasını istiyorsanız, export ifadesini aşağıdaki gibi yeniden sıralamanız gerektiğini unutmayın:
export PATH=~/bin:$PATH
Ryan, bunu bir yorum yerine cevap olarak değiştiriyorum, çünkü çok kısaydım. Tüm bunları "Terminal" de yapın.
G ++ derleyicisini kullanmak için bunu yapmanız gerekir:
* .Cpp dosyasını kaydettiğiniz dizine gidin.
cd ~/programs/myprograms/
(~, eviniz için bir kısayoldur, yani / Users / Ryan / programlar / programlarım / gerçekte kullandığınız konumla değiştirin.)
Derleyin
g++ input.cpp -o output.bin
(output.bin herhangi bir uzantıya sahip herhangi bir şey olabilir, bin sadece unix'te yaygındır.)
Eğer başarılı olursa HİÇBİR ŞEY geri gönderilmeli ve sorun değil . Genellikle hatalardan geri dönüş alırsınız.
Ancak, yazarsanız ls
, aynı dizindeki dosyaların listesini görürsünüz. Örneğin, input.cpp ve output.bin adlı diğer klasörleri görürsünüz.
Dizinin içinden, şimdi dizini ./outbut.bin
Bunu yapmanın kompakt bir yolu şunlar olabilir:
make foo && ./$_
Tek satırlık olması güzel, böylece çalıştırılabilir dosyayı tekrar kolayca yeniden çalıştırabilirsiniz.
Geçerli dizinin yolda olmadığı varsayılarak sözdizimi kullanılır ./[name of the program]
.
Örneğin ./a.out
En iyi uyarıları almak için aşağıdakileri ekleyin, pişman olmayacaksınız. Yapabiliyorsanız, WISE'i derleyin (uyarı hatadır)
- Wall -pedantic -Weffc++ -Werror
C veya C ++ programlarını derlemek için ortak bir komut vardır:
make filename
./filename
make, kaynak dosyanızı aynı ada sahip yürütülebilir bir dosyaya oluşturur. Ancak standart yolu kullanmak istiyorsanız, c ++ için C programları & g ++ oluşturmak için gcc derleyicisini kullanabilirsiniz.
C için:
gcc filename.c
./a.out
C ++ için:
g++ filename.cpp
./a.out
A kullanın makefile
. Çok küçük (= tek dosya) projeler için bile, muhtemelen buna değer, çünkü işleri test etmek için birkaç derleyici ayarına sahip olabilirsiniz. Hata ayıklama ve dağıtım bu şekilde çok daha kolay çalışır.
make
Kılavuzu okuyun, ilk bakışta oldukça uzun görünüyor, ancak çoğu bölümden geçebilirsiniz. Sonuçta birkaç saat sürdü ve beni daha üretken yaptı.
Bu bağlantıyı talimatlarla buldum:
http://www.wesg.ca/2007/11/how-to-write-and-compile-c-programs-on-mac-os-x/
Temelde şunları yaparsınız:
gcc hello.c
./a.out (or with the output file of the first command)
gcc hello.c -o a.out
mı? Hangi ile aynı şeyi yapar gcc hello.c
.
c / cpp dosyanızın bulunduğu dizini girmeniz yeterlidir.
c kodunu derlemek ve çalıştırmak için.
$gcc filename.c
$./a.out filename.c
c ++ kodunu derlemek ve çalıştırmak için.
$g++ filename.cpp
$./a.out filename.cpp
"$" varsayılan mac terminal sembolüdür
Mac terminalinden bir cpp kaynak kodu derlemek ve çalıştırmak için aşağıdakileri yapmak gerekir:
Terminali kullanarak bir .C dosyası çalıştırmak iki adımlı bir işlemdir. İlk adım, terminalde gcc yazmak ve .C dosyasını terminale bırakmak ve ardından Enter:
username$ gcc /Desktop/test.c
İkinci adımda aşağıdaki komutu çalıştırın:
username$ ~/a.out
Komutun altında çalışan c ++ dosyalarını çalıştırmak için, dosya adının "main.cpp" olduğu varsayılarak
1. c ++ dosyasından nesne dosyası yapmak için derleyin.
g++ -c main.cpp -o main.o
2.Since MacOS'ta #include <conio.h>
desteklemediğinden, Mac'te destekleyen alternatifini kullanmalıyız #include <curses.h>
. Şimdi nesne dosyasının yürütülebilir dosyaya dönüştürülmesi gerekiyor. Kullanmak için curses.h
kütüphane kullanmak zorundayız -lcurses
.
g++ -o main main.o -lcurses
Şimdi çalıştırılabilir dosyayı çalıştırın.
./main