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
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.
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
:
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.
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.
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? –
Uzantı nedir? .Yapmak? Ya da myMakefile –
@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