如何在Cygwin中编译我的C++程序。我已经安装了gcc。我应该使用什么命令?另外,如何在扩展名为.cpp时运行我的控制台应用程序。我试图用一些小程序学习C++,但在Visual C++中,我不想为每个小的.cpp文件创建一个单独的项目。用Cygwin编译C++
5
A
回答
12
您需要使用如下命令:
g++ -o prog prog.cpp
这是一个简单的表格,会变成一个文件C++项目到可执行。如果您有多个C++文件,你可以这样做:
g++ -o prog prog.cpp part2.cpp part3.cpp
但最终,你将要为大家介绍的方便makefile文件,所以你只需要编译已更改的位。然后,你会最终有一个Makefile
,如:
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
而且然后,你会开始盘算如何编写makefile文件,以使其更加灵活(如不需要单独的规则为每个C++文件),但这可以留给另一个问题。
关于为每个C++文件都有一个单独的项目,根本没有必要。如果你有他们都在同一个目录中,有℃的简单映射++文件,可执行文件,可以使用下面的Makefile:
SRCS=$(wildcard *.cpp)
EXES=$(SRCS:.cpp=.exe)
all: $(EXES)
%.exe: %.cpp
g++ -o [email protected] $^
然后运行make
命令,它会(智能)创建所有可执行文件。 [email protected]
是目标,$^
是先决条件的列表。
而且,如果你有更复杂的规则,就把它们放在底部。具体规则将优先选择的模式规则:
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.
4
您将需要g ++。然后尝试g++ file.cpp -o file.exe
作为开始。稍后,您可以通过学习Makefiles来避免大量输入。
0
,如果你想使用Cygwin,你应该使用正常gcc
语法
g++ -o foobar foobar.cpp
,但并没有真正使用Visual C踢好++ 。我建议你看看Eclipse CDT,如果你更喜欢使用GCC而不是Visual C++编译器。
0
我做什么编译CPP程序:如果你想单独编译文件
g++ -Wall Test.cpp -o Test
-Wall enables warning and error messages to be shown
-o Test creates an Test.exe after compilation
:
g++ -Wall -c File1.cpp
g++ -Wall -c File2.cpp
现在创建一个可执行文件,结合目标文件为:
g++ -Wall File1.o File2.o -o File.exe
这样你可以编译你的头文件,你可以包含在你的应用程序中。
相关问题
- 1. 用Cygwin编译TCC
- 2. 用cygwin编译winapi
- 3. 用cygwin/gfortran编译或用acml编译
- 4. 如何用cygwin编译ioping
- 5. 用windows编译ncmpcpp与cygwin
- 6. C,Cygwin,并编译drand和srand
- 7. 我可以使用Cygwin用Momentics编译C/C++代码吗?
- 8. gcc cygwin编译错误
- 9. Cygwin的找不到编译
- 10. 在cygwin中编译OpenEXR
- 11. ndk-build编译错误Cygwin
- 12. FingerJetFXOSE Cygwin的编译错误
- 13. 在Cygwin上编译node.js
- 14. 用CygWin的C Socket编程
- 15. 用MinGW-w64/Cygwin编译freetype-2.4.9
- 16. Clojure编译并使用cygwin运行
- 17. 用Cygwin下的CMake编译库
- 18. 用Cygwin编译独立exe文件
- 19. 使用cygwin交叉编译到arm-linux
- 20. 使用Cygwin编译器将Qt项目编译到Eclipse中
- 21. 使用Windows编译器之间的编译库编译器,cygwin和linux g ++
- 22. 何时使用Cygwin或MinGW编译C代码?
- 23. 如何从Java调用Cygwin C编译器GCC?
- 24. C++编译错误使用Qt和Cygwin的Netbeans
- 25. 在netbeans 8.2(cygwin,C++)中启用编译器警告?
- 26. 使用gcc和Cygwin编译OpenGL ES C代码
- 27. 对__dso_handle_的未定义引用 - 在cygwin上编译C++
- 28. 用cygwin编译C++不提供包含路径
- 29. 用C++编译器编译c代码
- 30. 编译使用qt和cygwin编译器的独立应用程序
谢谢。但是,我可以创建一个makefile来编译同一目录中的任何C++文件,而不是为每个特定的.cpp文件创建一个makefile文件吗? – 2009-11-18 21:03:41
什么是扩展名? 。使?或者没有像myMakefile – 2009-11-18 21:05:05
@Mohit这样的扩展名,那些makefiles会将任何cpp文件编译为它的等效exe文件(通配符和'%'模式可以看到这一点)。按照惯例,make文件被称为Makefile或makefile。你可以使用不同的名字,比如bob.mk,但是你必须做'make -f bob.mk all'而不是'make all'。 – paxdiablo 2009-11-18 23:38:51