使用gcc/g++编译器编译C++代码

4

我刚开始学习C++,并且想要编译我的测试程序。
现在我有三个文件:"main.cpp" "parse.cpp" "parse.h"

请问如何用一条命令进行编译?

4个回答

22

同时编译它们并将结果放在a.out中。

$ g++ file.cpp other.cpp
将它们同时编译,并将结果放在prog2中。
$ g++ file.cpp other.cpp -o prog2

分别编译每个文件,然后将它们链接为a.out

$ g++ -c file.cpp
$ g++ -c other.cpp
$ g++ file.o other.o

分别编译每个文件,然后将它们链接到prog2中。

$ g++ -c file.cpp
$ g++ -c other.cpp
$ g++ file.o other.o -o prog2

8
感谢您为清晰度投票,但对于更复杂的内容,我建议您研究一下makefile。 - Brian Agnew
我同意 @Brian Agnew 的观点。这是真的。当我使用make文件时,这是正确的。但对于小编译,只使用命令就可以了。 - joe

8

通常情况下,您会使用make工具和一个makefile。这里是一个教程

如果您只想进行简单的编译,那么可以直接使用gcc...

您不需要指定.h文件,因为它们已经被.cpp文件包含了。

gcc a.cpp b.cpp -o program.out
./program.out


顺便提一下,查看我的先前问题,以了解g++和gcc之间的区别:https://dev59.com/a3VC5IYBdhLWcg3w1Exq - Brian R. Bondy

3
使用命令行编译一个简单的基本程序是很容易的,但当你尝试编译一个“真正的程序”时,它会变得更加困难或者不可能。我的意思是一个由各种源文件、库和一些编译器选项组成的简单集合。
为此,有许多构建系统可供选择,我推荐的是CMake。它是一个功能强大且易于使用的开源跨平台构建系统。我每天都在使用它,我认为它比其他构建系统如AutoTools更容易使用。
更多信息请参考:www.cmake.org

2
在大多数情况下,如果您使用g++编译器,则必须使用以下命令编译主文件:
g++ main.cpp -o main

在这种情况下,结果可执行文件名为 "main"。 选项 "-o" 表示编译器将优化编译。 如果您想了解更多有关这些选项的信息,请查看手册页(man g++)。

3
"-o"选项设置输出二进制文件的名称。"-On"用于优化,其中n是从0到4或s的数字,取决于所需的优化级别。 - John Barrett

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接