如何在Cygwin中编译我的C ++程序。我安装了gcc。我应该使用什么命令?此外,如何在.cpp扩展名中运行我的控制台应用程序。我试图用一些小程序学习C ++,但在Visual C ++中,我不想为每个小.cpp文件创建一个单独的项目。
答案 0 :(得分:13)
您需要使用如下命令:
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.
答案 1 :(得分:4)
你需要g ++。然后尝试g++ file.cpp -o file.exe
作为开始。之后,您可以通过了解Makefiles来避免太多打字。
答案 2 :(得分:0)
如果你想使用cygwin,你应该使用正常的gcc
语法
g++ -o foobar foobar.cpp
但是这对Visual C ++并不是很好。如果您更喜欢在Visual C ++编译器上使用GCC,我建议您查看Eclipse CDT。
答案 3 :(得分: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
这样您就可以编译头文件,并且可以包含在应用程序中。