当前位置:  开发笔记 > 小程序 > 正文

用Cygwin编译C++

如何解决《用Cygwin编译C++》经验,为你挑选了1个好方法。

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



1> paxdiablo..:

您需要使用如下命令:

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.

推荐阅读
雯颜哥_135
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有