2009-11-18 18 views
5

Cydwin'de C++ programlarını nasıl derlerim? Gcc yüklü. Hangi komutu kullanmalıyım? Ayrıca, konsol uygulamamı .cpp uzantısında olduğunda nasıl çalıştırabilirim. Bazı küçük programlar ile C++ öğrenmeye çalışıyorum, ancak Visual C++, her küçük .cpp dosyası için ayrı bir proje oluşturmak zorunda kalmak istemiyorum.Cyclwin ile Compile C++

cevap

12

Sen gibi bir komut kullanmak gerekir.

g++ -o prog prog.cpp part2.cpp part3.cpp 

ama sonunda, size sadece değişmiş bitleri derlemek zorunda böylece kolaylık makefiles tanıtmak isteyeceksiniz: Birden C++ dosya varsa, bunu yapabilirsiniz. Sonra ile bitireceğiz Makefile gibi: o zaman, bu tür her C++ dosya için ayrı bir kural gerektirmiyor olarak (onları daha esnek hale getirmek için makefiles yazmayı endam başlayacağız

prog: prog.o part2.o part3.o 
    g++ -o prog prog.o part2.o part3.o 

prog.o: prog.cpp 
    g++ -c -o prog.o prog.cpp 

part2.o: part2.cpp 
    g++ -c -o part2.o part2.cpp 

part3.o: part3.cpp 
    g++ -c -o part3.o part3.cpp 

Ve ), ama başka bir soru için bırakılabilir. Her bir C++ dosyası için ayrı bir proje olmasıyla ilgili olarak, bu hiç de gerekli değildir. Bir dizinde hepsini var ve yürütülebilir dosyalara ++ dosyaları C basit bir eşleme varsa, aşağıdaki makefile kullanabilirsiniz: Sonra

SRCS=$(wildcard *.cpp) 
EXES=$(SRCS:.cpp=.exe) 

all: $(EXES) 

%.exe: %.cpp 
    g++ -o [email protected] $^ 

make komutunu çalıştırın ve onu (akıllı) yaratacak tüm senin yürütülebilir. [email protected] hedeftir ve $^ önkoşulların listesidir.

Ve daha karmaşık kurallarınız varsa, bunları aşağıdan yere yapıştırın.

SRCS=$(wildcard *.cpp) 
EXES=$(SRCS:.cpp=.exe) 

all: $(EXES) 

%.exe: %.cpp 
    g++ -o [email protected] $^ 

xx.exe: xx.cpp xx2.cpp xx3.cpp 
    g++ -o [email protected] $^ 
    echo Made with special rule. 
+0

Teşekkürler. Ama her bir .cpp dosyası için bir makefile oluşturmak yerine, aynı dizinde herhangi bir C++ dosyası derleyen tek bir makefile oluşturabilir miyim? –

+0

Uzantı nedir? .Yapmak? Ya da myMakefile –

+0

@Mohit gibi bir uzantı yoksa, bu makefile'ler herhangi bir cpp dosyasını eşdeğer exe'ye (joker karaktere ve '%' desenine bakın) derler. Sözleşmeye göre make dosyası Makefile veya makefile olarak adlandırılır. Bob.mk gibi farklı bir ad kullanabilirsiniz ama sonra 'make all' yerine 'make -f bob.mk all' yapmalısınız. – paxdiablo

4

g ++ 'a ihtiyacınız olacak. Sonra başlangıç ​​olarak g++ file.cpp -o file.exe'u deneyin. Daha sonra Makefiles'i öğrenerek çok fazla yazmayı engelleyebilirsiniz. bir yürütülebilir tek dosya C++ projesini dönecek basit bir form var

g++ -o prog prog.cpp 

:

0

Eğer normal gcc sözdizimi

g++ -o foobar foobar.cpp 

kullanmalıdır CygWin kullanmak istiyorsanız ama bu gerçekten Visual C iyi oynamıyor ++: Belirli kurallar desen kurallarına göre tercih edilecektir . Görsel C++ derleyicisinden GCC'yi kullanmayı tercih ederseniz, Eclipse CDT'a göz atmanızı öneririm.

0

Bir cpp programı derlemek ne yaparsak:

g++ -Wall File1.o File2.o -o File.exe 
:

g++ -Wall -c File1.cpp 
g++ -Wall -c File2.cpp 

Şimdi sıra kombine nesne dosyaları ile çalıştırılabilir bir dosya oluşturmak: Eğer ayrı ayrı dosyaları derlemek istiyorsanız

g++ -Wall Test.cpp -o Test 
-Wall enables warning and error messages to be shown 
-o Test creates an Test.exe after compilation 

Bu sayede başlık dosyalarınızı derleyebilir ve uygulama programlarınıza ekleyebilirsiniz.