2011-05-13 141 views
1

我刚开始用Dev C++学习C++作为我的IDE。我正在使用的教程中有一个关于编译由多个文件组成的程序的页面。这很简单,我有一个带有函数的文件,另一个文件具有所有其他需要的代码来调用函数并输出结果。问题是教程没有告诉我如何加入这些文件,所以我可以编译程序并使其工作。似乎有多种方法可以做到这一点,我希望他们都可以,但我现在主要是寻找最简单的方法。编译一个包含多个文件的程序

我还应该提到,我是新手,所以请尽量让您的解释简单易懂。

回答

3

一般而言,您可以在同一个目标下将两个.cpp文件添加到您的项目中。它将自动将两个文件添加到构建中并将它们链接在一起。


这就是说,开发-C++是非常,非常古老和无人维护。它几年来没有看到更新。我强烈建议你使用不同的IDE。有很多可供选择,其中包括称为wxDev-C++ Dev-C++的分支。我实际上推荐使用Code::BlocksVisual Studio Express,它们都更现代化,并且对调试和许多其他功能有更好的支持。

+0

感谢信息。我听说Dev-C++基本上被删除了,但我不知道wxDev-C++是延续;我以为有人拿起它。说实话,我真的不喜欢很多关于它的事情。 – Greener 2011-05-14 21:33:44

+0

最新评论:截至此日期(2017年),wxDev-C++本身并未在大约6年内更新(2011年最新更新;上次报告2012年错误)。另一方面,2年前(2015年)发布了[Orwell的Dev-C++]的另一个分支(http://orwelldevcpp.blogspot.com/)。 – 2017-11-12 17:32:29

3

我不确定Dev-C++,但概念保持不变。所以,这里是你如何设法让这两个文件一起工作

  1. 每个C++文件编译单元 - 含义,编译器将一个的.cpp/.CXX文件转换成一个.OBJ /的.o文件(在Windows和Linux(或任何Unix上))
  2. 如果被称为目标文件的obj文件包含该特定文件中存在的类和函数的机器代码(这里跳过一些内部细节)
  3. 如果要访问不同编译单元中存在的函数,需要链接那两个目标文件
    • 链接是确实的目标文件的链接
  4. 所以,你的情况是习惯了,好了,连接两个目标文件
  5. 有一个单独的进程(比编译器等)的一个术语,你需要使用DEV-C++编译器和创建独立的目标文件
  6. 然后使用您链接两个目标文件链接器创建最终的可执行

如果有存在于.cpp文件功能你想参考,你使用头文件。头文件包含函数/类声明。 .cpp文件将具有实现。因此,在你的.cpp文件之一(比如说)A.cpp中,包含B.hpp头文件并在B.hpp文件中使用这些函数。包含头文件会告诉编译器,函数声明存在于别处,并且链接器将负责将所有这些引用串起来以创建最终的可执行文件。

希望这有帮助,否则,请不要犹豫,提及您正在使用的文件,我可以建议如何将两个.cpp文件链接在一起。

+0

谢谢。我想出了如何去做,但这有助于加强我对这个过程的理解。我只是忘记了我需要转发声明函数,以便编译。 – Greener 2011-05-14 21:32:01

1

你必须在你有main()函数

例如,文件的顶部使用#include预处理指令 包括其他文件:

#include "filename.h" 
... 
/* rest of code containing main function goes here */ 
... 
1
#include "path/filename.c" 

main 
{ 
... 
... 
... 
} 
+1

你可以请在这个附加一些解释,并且可能的(给定问题的级别),使用正确的语法来声明'main'? – LordWilmore 2018-02-08 15:07:20

+0

除了语法问题和缺乏解释之外,具有多个文件的想法通常是单独编译它们。这个答案只是将它们包括在一起,这通常是一个坏主意。 – 2018-02-08 16:04:43