编译c++;与gcc/g++;编译程序 我是C++新手,我想编译我的测试程序。 我现在有3个文件“main.cpp”“parse.cpp”“parse.h”

编译c++;与gcc/g++;编译程序 我是C++新手,我想编译我的测试程序。 我现在有3个文件“main.cpp”“parse.cpp”“parse.h”,c++,c,gcc,programming-languages,C++,C,Gcc,Programming Languages,如何用一个命令编译它?通常,您将使用带有makefile的 如果您只需要一个简单的编译,尽管您可以直接使用gcc 您不指定.h文件,因为它们包含在.cpp文件中 gcc a.cpp b.cpp-o程序输出 /program.out 同时编译它们,并将结果放入a.out中 $ g++ file.cpp other.cpp 同时编译它们,并将结果放入prog2 $ g++ file.cpp other.cpp -o prog2 分别编译每个文件,然后将它们链接到a.out中 $ g++ -c f

如何用一个命令编译它?

通常,您将使用带有makefile的

如果您只需要一个简单的编译,尽管您可以直接使用gcc

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

gcc a.cpp b.cpp-o程序输出
/program.out


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

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

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

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

为此,有各种构建系统,我推荐您使用的是CMake。 这是一个开源的跨平台构建系统,功能强大,易于使用。 我每天都使用它,我认为它比其他的自动工具更容易使用


更多信息:

投票赞成澄清,但对于任何更复杂的问题,我会调查Makefiles,我同意@Brian Agnew。是真的。。我什么时候会使用make文件。但对于小公司来说。只使用命令就可以了……顺便说一下,请看我前面的问题,看看g++和gcc之间的区别:-o选项设置输出二进制文件的名称-On用于优化,其中n是0到4之间的数字或s,具体取决于所需的优化。