Fri*_*n3L 12 c++ compilation build
关于编译和构建之间的区别,我有一个理论问题.我正在编写一个需要花费大量时间来构建的c ++项目,所以我已经告诉要在"我修改了任何头文件"的情况下进行构建.真的吗?如果我在headder文件中添加一个新属性,那么我必须构建吗?编译不够?
谢谢!
us2*_*012 19
"建筑"是一个模糊的术语,通常意味着整个过程,预处理,编译和链接.在源更改之后,必须重做这些过程的哪些部分取决于已更改的内容.如果您只更改了单个.cpp源,则只需重新编译它并再次链接对象即可.如果更改.h标题,则必须重新编译包含此标题的所有源文件,这通常很昂贵,因为特定于项目的标题往往包含在许多源文件中.
简而言之,如果您对源进行了更改,则必须重新编译受此影响的所有文件,并且必须重新链接整个二进制文件.
小智 12
编译是将源代码转换为目标代码的行为.
链接是将目标代码与库组合成原始可执行文件的行为.
构建是由编译和链接组成的序列,可能还有其他任务,例如安装程序创建.
因此,您只需(重新)编译比源文件更旧的对象代码("最近编辑过"),以链接包含程序中最新更改的可执行文件.实际上,这是make决定是否构建文件的方式.
编译是将高级代码转换为机器级代码的过程
构建是将高级语言转换为可执行文件的过程.它将涉及编译和链接.
如果修改头文件,头文件可能会影响几个c ++文件,因此要获得最终的可执行文件,您需要构建它
单独编译是没有用的,因为它不会产生最终的excutable,因此你需要始终构建.
| 归档时间: |
|
| 查看次数: |
15226 次 |
| 最近记录: |