一起编译几个文件?

时间:2011-05-25 14:28:37

标签: c++ file compilation

我有

  • Data.cpp
  • Data.h
  • User.cpp
  • User.h
  • 的main.cpp

Main.cpp需要data.cpp和user.cpp。我如何链接或编译它们?他们都在同一个目录中? (请更具体,比如首先要编译的文件。)

我的系统是:Mac OS X,终端中的g ++编译器。

5 个答案:

答案 0 :(得分:3)

最简单的方法:

g++ Data.cpp User.cpp main.cpp

更高级的方法:使用makefile

答案 1 :(得分:2)

试试这个:

g++ main.cpp Data.cpp User.cpp -o myexecutable

所有源文件都是单独编译的,因此顺序并不重要。编译之后,g ++也会进行链接。

答案 2 :(得分:1)

将每个单独编译为目标文件。 然后将目标文件链接到应用程序。

答案 3 :(得分:0)

我猜你是在说错话:

Main.cpp 需要user.cpp:他只需要在user.cpp中实现类型的定义。这就是为什么您只需要在user.h中加入Main.cpp

通常,每个.cpp文件都会变成自己的翻译单元,并提供不同的目标文件。然后在链接进程发生时汇编这些文件。

基本上,步骤是:

  1. 对于每个源文件(.cpp),您生成目标文件(编译)。
  2. 您将这些目标文件组合成生成的二进制文件(链接)。
  3. 通常,人们使用Makefile甚至更好的工具:SConstruct来自动执行这些步骤。

    SConstruct很好,因为它还会在编译之前解析源文件并构建依赖树,以确保一切顺利。

答案 4 :(得分:0)

最快的方式是

g++ main.cpp Data.cpp User.cpp -o program_name