用Cygwin编译C ++

时间:2009-11-18 02:28:35

标签: gcc cygwin

如何在Cygwin中编译我的C ++程序。我安装了gcc。我应该使用什么命令?此外,如何在.cpp扩展名中运行我的控制台应用程序。我试图用一些小程序学习C ++,但在Visual C ++中,我不想为每个小.cpp文件创建一个单独的项目。

4 个答案:

答案 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

这样您就可以编译头文件,并且可以包含在应用程序中。