【发布时间】:2009-07-20 11:48:19
【问题描述】:
我是 C++ 新手,我想编译我的测试程序。
我现在有 3 个文件 "main.cpp" "parse.cpp" "parse.h"
如何用一个命令编译它?
【问题讨论】:
标签: c++ c gcc programming-languages
我是 C++ 新手,我想编译我的测试程序。
我现在有 3 个文件 "main.cpp" "parse.cpp" "parse.h"
如何用一个命令编译它?
【问题讨论】:
标签: c++ c gcc programming-languages
同时编译它们并将结果放在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
【讨论】:
通常您会将make utility 与makefile 一起使用。 Here is a tutorial.
如果你只想要一个简单的编译虽然你可以直接使用 gcc...
您无需指定 .h 文件,因为它们包含在 .cpp 文件中。
gcc a.cpp b.cpp -o program.out
./program.out
【讨论】:
使用命令行编译对于一个简单的基本程序来说是微不足道的,但是当你尝试编译一个“真正的程序”时,它变得更加困难或不可能。我的意思不是一个大的各种源文件的简单集合,例如带有一些编译器选项的库。
为此,有多种构建系统,我推荐您使用 CMake。 它是一个开源的跨平台构建系统,非常强大且易于使用。 我每天都在使用它,我认为它比 AutoTools 等其他工具更易于使用
更多信息:www.cmake.org
【讨论】:
在大多数情况下,如果你使用 g++ 编译器,你必须编译 main,使用这个命令:
g++ main.cpp -o main
在这种情况下,结果可执行文件将是“main”。 选项“-o”表示编译器将优化编译。 如果您想了解有关这些选项的更多信息,请查看手册页 (man g++)。
【讨论】: