用 gcc/g++ 编译器编译 c++

Posted

技术标签:

【中文标题】用 gcc/g++ 编译器编译 c++【英文标题】:compiling c++ with gcc/g++ compiler 【发布时间】:2009-07-20 11:48:19 【问题描述】:

我是 C++ 新手,我想编译我的测试程序。 我现在有 3 个文件 "main.cpp" "parse.cpp" "parse.h"

如何用一个命令编译它?

【问题讨论】:

【参考方案1】:

同时编译它们并将结果放在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

【讨论】:

为了清晰起见投了赞成票,但对于更复杂的事情,我会调查 makefiles 我同意@Brian Agnew 的观点。它是真的.. 当我将使用 make 文件时。但对于小编译。只需使用命令就可以了...【参考方案2】:

通常您会将make utility 与makefile 一起使用。 Here is a tutorial.

如果你只想要一个简单的编译虽然你可以直接使用 gcc...

您无需指定 .h 文件,因为它们包含在 .cpp 文件中。

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

【讨论】:

顺便看看我之前的问题,看看g++和gcc的区别:***.com/questions/172587/…【参考方案3】:

使用命令行编译对于一个简单的基本程序来说是微不足道的,但是当你尝试编译一个“真正的程序”时,它变得更加困难或不可能。我的意思不是一个大的各种源文件的简单集合,例如带有一些编译器选项的库。

为此,有多种构建系统,我推荐您使用 CMake。 它是一个开源的跨平台构建系统,非常强大且易于使用。 我每天都在使用它,我认为它比 AutoTools 等其他工具更易于使用

更多信息:www.cmake.org

【讨论】:

【参考方案4】:

在大多数情况下,如果你使用 g++ 编译器,你必须编译 main,使用这个命令:

g++ main.cpp -o main

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

【讨论】:

-o 选项设置输出二进制文件的名称。 -On 用于优化,其中 n 是 0 到 4 或 s 之间的数字,具体取决于所需的优化。

以上是关于用 gcc/g++ 编译器编译 c++的主要内容,如果未能解决你的问题,请参考以下文章

gcc/g++ 实战之编译的四个过程

gcc,g++

gcc与g++:联系区别和命令

G++和GCC和C,C++有啥区别的

gcc,g++,make,cmake的区别

手把手写C++服务器:编译实操——打开gcc/g++世界