如何在Cygwin中编译我的C++程序.我安装了gcc.我应该使用什么命令?此外,如何在.cpp扩展名中运行我的控制台应用程序.我试图用一些小程序学习C++,但在Visual C++中,我不想为每个小.cpp文件创建一个单独的项目.
您需要使用如下命令:
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++文件创建一个单独的项目,这根本不是必需的.如果你已经将它们全部放在一个目录中并且有一个简单的C++文件映射到可执行文件,你可以使用以下makefile:
SRCS=$(wildcard *.cpp) EXES=$(SRCS:.cpp=.exe) all: $(EXES) %.exe: %.cpp g++ -o $@ $^
然后运行该make
命令,它将(智能地)创建所有可执行文件.$@
是目标,$^
是先决条件的列表.
而且,如果你有更复杂的规则,只需将它们放在底部即可.将优先选择特定规则以模式规则:
SRCS=$(wildcard *.cpp) EXES=$(SRCS:.cpp=.exe) all: $(EXES) %.exe: %.cpp g++ -o $@ $^ xx.exe: xx.cpp xx2.cpp xx3.cpp g++ -o $@ $^ echo Made with special rule.