编译C++;和Cygwin在一起 如何编译CiggWin中的C++程序。我已经安装了gcc。我应该使用什么命令?另外,当控制台应用程序位于.cpp扩展名中时,如何运行它。我尝试用一些小程序来学习C++,但是在Visual C++中,我不想为每个小的.CPP文件创建一个单独的项目。 < p>你需要g++。然后开始尝试g++file.cpp-o file.exe。稍后,您可以通过学习Makefiles来避免大量键入。

编译C++;和Cygwin在一起 如何编译CiggWin中的C++程序。我已经安装了gcc。我应该使用什么命令?另外,当控制台应用程序位于.cpp扩展名中时,如何运行它。我尝试用一些小程序来学习C++,但是在Visual C++中,我不想为每个小的.CPP文件创建一个单独的项目。 < p>你需要g++。然后开始尝试g++file.cpp-o file.exe。稍后,您可以通过学习Makefiles来避免大量键入。,gcc,cygwin,Gcc,Cygwin,您需要使用如下命令: 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

您需要使用如下命令:

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

然后,你开始考虑如何编写你的MaX文件,使它们更灵活(比如不需要为每个C++文件单独的规则),但是可以留给另一个问题。 <>对于每个C++文件有一个单独的项目,这根本不是必要的。如果你把它们都放在一个目录里,并且有一个C++文件到可执行文件的简单映射,你可以使用下面的MaxFix:

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.

如果要使用cygwin,应该使用正常的
gcc
语法

g++ -o foobar foobar.cpp

<>但是这并不能很好地发挥Visual C++的作用。我建议您看看是否更喜欢使用GCC在VisualC++编译器上。p> 我如何编译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

通过这种方式,您可以编译头文件并将其包含在应用程序中。

谢谢。但是我能创建一个MaMo文件,编译同一个目录中的任何C++文件,而不是为每个特定的CPP文件创建一个MaMax文件吗?扩展是什么?制作或者没有类似的扩展myMakefile@Mohit,这些makefiles会将任何cpp文件编译为其等效的exe(通配符和“%”模式会确保这一点)。按照惯例,生成文件称为Makefile或Makefile。您可以使用不同的名称,如bob.mk,但是您必须执行“make-f bob.mk all”,而不仅仅是“make all”。