我要投搞

标签云

收藏小站

爱尚经典语录、名言、句子、散文、日志、唯美图片

当前位置:刘伯温论坛 > 分别编译 >

c++分离式编译的好处是什么?

归档日期:07-01       文本归类:分别编译      文章编辑:爱尚语录

  将代码写在不同的文件中的确有助于理清它们之间的逻辑关系,但是为什么编译器也要把它们分开编译,最后再连接起来?我觉得这样既浪费时间又会产生不必要的麻烦。或许,编译器可以把所...

  将代码写在不同的文件中的确有助于理清它们之间的逻辑关系,但是为什么编译器也要把它们分开编译,最后再连接起来?我觉得这样既浪费时间又会产生不必要的麻烦。

  或许,编译器可以把所有的.cpp整合起来 ,并把各个文件中的变量改名加以标识,以区分不同文件中重名的变量,形成一个大的.cpp,然后编译一次就够了。

  这样就不用连接了,也避免了extern变量、内联函数写在.h中的许多问题。展开我来答

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  展开全部如果工程巨大(比如linux内核源码) , 当你只修改了其中一个文件的时候,只要编译改动过的就可以了,不需要全部重新编译。 (这个时间节约是很可观的)

  对于一般的小工程来说(10w行), 确实只是“有助于理清它们之间的逻辑关系”。 让代码架构漂亮一些。

  分离编译模式是指:一个程序(项目)由若干个源文件共同实现,而每个源文件单独编译生成目标文件,最后将所有目标文件连接起来形成单一的可执行文件的过程。

  分离编译模式是C/C++组织源代码和生成可执行文件的方式。在实际开发大型项目的时候,不可能把所有的源程序都放在一个头文件中,而是分别由不同的程序员开发不同的模块,再将这些模块汇总成为最终的可执行程序。

  这里就涉及到不同的模块(源文件)定义的函数和变量之间的相互调用问题。C/C++语言所采用的方法是:只要给出函数原型(或外部变量声明),就可以在本源文件中使用该函数(或变量)。每个源文件都是独立的编译单元,在当前源文件中使用但未在此定义的变量或者函数,就假设在其他的源文件中定义好了。每个源文件生成独立的目标文件(obj文件),然后通过连接(Linking)将目标文件组成最终的可执行文件。

  程序编译的简要过程包括预处理(Preprocessing)、编译(Compilation)、汇编(Assembly)和连接(Linking)。

  提高编译速度,这在一个大工程就体现的出来,比如修改了一个公共的头文件,导致绝大数cpp都要重新编译,这时候分布式编译的好处就体现出来了,大大节省了程序猿的编译时间。

本文链接:http://saltstudios.net/fenbiebianyi/555.html