在 dev c++ 中编译项目中的特定文件

Posted

技术标签:

【中文标题】在 dev c++ 中编译项目中的特定文件【英文标题】:Compiling specific files in a project in dev c++ 【发布时间】:2014-03-17 10:10:36 【问题描述】:

我正在开发 c++ 上编写一个项目,其中包含大量文件。但是,其中最大的部分不会每次我再次编译代码时都发生变化,因此不必再次编译。

如何只编译我选择的几个文件,而不是整个项目?

还是编译器已经在做?

对编译时间有帮助吗?

*这些都是理论问题,我不介意每次等待几秒钟。这让我很感兴趣。

谢谢

【问题讨论】:

【参考方案1】:

编译是一个多阶段的过程,分为两个部分:编译链接。实际上,即使程序编译得很好,它也没有必要工作,因为链接时出现错误。从源代码到目标文件的整个转换过程可以称为构建。

编译是指处理源代码文件(.c、.cc 或 .cpp)和创建“目标”文件。编译器仅生成与已编译的源代码文件相对应的机器语言指令。此步骤不会创建用户可以实际运行的任何内容。

链接是指从多个目标文件创建单个可执行文件。在这一步中,链接器通常会抱怨未定义的函数(通常是 main 本身)。因此,如果函数未在当前文件中定义,则在编译时,它假定该函数在其他地方声明,并且链接器链接其他文件中定义的函数

编译器做自己的事,链接器做自己的事——通过保持函数分离,程序的复杂性降低了。主要优点是允许创建大型程序而无需重做编译步骤每次更改文件时。相反,使用所谓的“条件编译”,只需要编译那些已经改变的源文件;其余的,目标文件是链接器的足够输入。最后,这使得实现预编译代码库变得简单:

如果您使用的是 IDE,则默认情况下会为您服务,对于命令行工具,有一个名为 make 的漂亮实用程序。

【讨论】:

以上是关于在 dev c++ 中编译项目中的特定文件的主要内容,如果未能解决你的问题,请参考以下文章

dev c++无法编译

使用 Dev-C++5.11 在 C++ 程序中编译的错误文件

rename() 在使用 Dev C++ 编译的 C 程序中不起作用

Dev C++编译的exe信息

源文件未使用最新版本的 DEV C++ 和 OpenCV 3.X 版本编译

cocos2dx C++如何使用cygwin去编译cocos2dx项目中的C++文件