C ++ programlarını derleme ve çalıştırma komutu nedir?


Yanıtlar:


108

C ++ kodunuzu derlemek için şunu kullanın:

g++ foo.cpp

Örnekteki foo.cpp , derlenecek programın adıdır.

Bu, a.outterminalinize şunu yazarak çalıştırabileceğiniz ve aynı dizinde çalıştırılabilir bir dosya üretecektir :

./a.out

g ++ zaten $ PATH'nizde olmalı, bu yüzden /usr/bin/g++açıkça aramanıza gerek yok , ancak ikincisini her durumda kullanabilirsiniz.

foo.cppKomutu çalıştırdığınız dizinde olmalı. Herhangi bir şüpheniz varsa, ls foo.cppya da yazarak aynı dizinde olduğunuzdan emin olabilirsiniz head foo.cpp(doğru ile çalıştığınızı doğrulamanız gerekiyorsa foo).

@ Con-f-use tarafından belirtildiği gibi, derleyici genellikle bu dosyayı çalıştırılabilir hale getirir, ancak yapmazsanız, bunu kendiniz yapabilirsiniz (bu nedenle çalıştırma komutu ./a.outveya eşdeğeri çalışacaktır):

chmod +x ./a.out

Derlenmiş çıktı dosyasının adını a.out, adlandırılmayacağını belirtmek -oiçin g ++ komutunuzla kullanın.

Örneğin

g++ -o output foo.cpp

Bu, foo.cppadlandırılmış olan ikili dosyaya derleyecektir ve derlenmiş kodu çalıştırmak için outputyazabilirsiniz ./output.


6
Derleyici genellikle ikili ( a.outbu durumda) çalıştırılabilir yapar. Değilse: yazarak bunu yapabilirsiniz chmod +x a.out. Derlenmiş programın çalıştırılabilir olması durumunda, onu çalıştırmak ./a.outistediğiniz nokta ve eğik çizgi göstergesini yazarak çalıştırabilirsiniz.
con-f-use

@ Rajeshkumar, beğenilerinize bu cevaplardan birini buldunuz mu? Eğer öyleyse, lütfen onlardan birini kabul edilen cevap olarak işaretleyebilir misiniz (yukarı / aşağı oy oklarının altındaki keneyi seçerek), böylece bu konunun altına bir çizgi çizebiliriz.

G ++ foo.c -o çıkışı ile g ++ -o çıkışı foo.c arasında bir fark var mı?
Goldname

21

Burada iki varsayımda bulunuyorum:

  1. Zaten oluşturmaya hazır bir C ++ kaynak dosyanız / programınız var
  2. Bilgisayarınızda bir derleme sistemi kurdunuz

Ubuntu'da bir C ++ programını ya da bu konuda herhangi bir Linux dağıtımını derlemenin en basit yolu

g++ main.cpp -o main
  • g ++ , C / C ++ için defacto derleyicisi olan GCC'nin C ++ bileşeninin ve Linux platformundaki diğer tüm dillerin sunucusunun çağrılmasıdır . Şu anda Linux çekirdeğini derleyebilecek tek derleyicidir.
  • main.cpp , derlemek istediğiniz c ++ kaynak dosyasıdır.
  • -o main , kaynak derlendikten sonra oluşturmak istediğiniz çıktı dosyasının adını belirtir. İsterseniz hedef kaynak dosyası ve hedef çıktı dosyası ters çevrilebilir, bu g++ -o main main.cppnedenle eşit olarak geçerlidir.
  • Daha sonra bu programı çalıştırmak için, terminalde ./main yapmanız gerekir.

Yukarıdaki komutlar, zaten kaynak dosyalarının konumunda olduğunuzu varsaymaktadır, ancak hem kaynak dosya hem de hedef çıktı dosyası da bir dizin olarak belirtilebilir. Örneğin

g++ ~/Desktop/main.cpp -o ~/Projects/main

masaüstünüzde bulunan bir C ++ kaynak dosyasını derleyecek ve çalıştırılabilir ikili dosyayı Projectsana dizininizdeki bir klasöre yerleştirecektir. Bu yürütülebilir dosyayı çalıştırmak için çalıştırın ./Projects/main.


5

Bu şekilde g ++ ile derlemeyi seviyorum.

$g++ -W -Wall -pedantic -o programName -p sourceFile.cpp

-W: Print extra warning messages for some problems.
-Wall: Enable all the warnings about questionable code
-pedantic: Show all the warnings demanded by strict ISO compliance
-o programName: place the executable output in programName sourceFile.cpp: the 
name of our source code file
-p: Generate extra code to write profile information suitable for the analysis program prof

1
-p: Generate extra code to write profile information suitable for the analysis program prof.
Hans,

Cevabını beğendim. Ekstra öneriler getiriyor. Ancak, genel olarak kabul edilebilir olduğu için tekrar ifade etmelisiniz.
LinuxSecurityFreak,

1

G ++ 'a ihtiyacınız var, çünkü gcc kolayca cpp dosyasını derleyemeyebilir.
Ayrıca C kodu yazmak için vim veya emacs öğrenmeniz gerekir.
Bunu terminalinizde deneyin:

Bir test programı yazın ve kaydedin:

$vim hello.cc

hello.ccG ++ ile derleyin :

$g++ hello.cc -o hello

Onu çalıştır:

$./hello

Burada ./exe dosyasının mevcut dir altında olduğu anlamına gelir.


3
gcc, C ve C ++ derleyicisinin GNU derleyicisidir. Ve OP'nin C kodunu yazmak için vim veya emacs bilmesi gerekmez, etrafta dolaşan başka birçok metin editörü ve IDE vardır.
Nitin Venkatesh

3
Vim'i sevmeme rağmen, birisi zaten bir problemin nasıl çözüleceğini bulmakta zorlanıyorsa, vim'i önermek çok yararlı değildir.
johanvdw 14:11

Şahsen sevmiyorum viama önemli değil. Belirli bir editör önermekten uzak durmalısın, herkes yine de kendi kullanıyor.
LinuxSecurityFreak

0

g++gccbazı önceden tanımlanmış c ++ makroları ve farklı varsayılan seçenek / bayraklarla (GNU Compiler Collection) bir ön uç .

c ++ kodunu derlemek , herhangi bir nedenden dolayı uygun olmadığında gcckullanışlıdır g++, aslında bu sadece c ++ kütüphanesine bağlantı vermek -lstdc++ve gcc'ye girişi c ++ kodu olarak işlemesi konusunda bilgilendirmek meselesidir (ya bir .Cuzantı kullanarak ya da dili zorlayarak) -x)
geçerli başka c ++ dosya adı ekleri: .cc, .cp, .cxx, .cpp, .CPP,.c++

örnek :

gcc cpp_code.C -lstdc++ .Cgcc'nin c ++ dosyası olduğunu bilmesi için büyük harf uzantısı ( ) önemlidir.

veya açıkça giriş dilini belirterek:

gcc -x c++ cpp_code.txt -lstdc++ uzatma herhangi bir şey olabilir, hatta hiçbir şey olmayabilir

varsayılan olarak sonuç (başarılı bir derlemeden sonra) a.outile çalıştırılabilen bir dosyadır./a.out


Cevabınız daha bilgilendirici
Billal Begueradj
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.