Nar*_*rek 4 c++ compiler-construction linker precompiled-headers visual-studio-2008
当编译器编译源(例如*.cpp
)文件时,它会创建目标文件(例如*.o
),以便稍后它将链接到其他.o
和.so
(.lib
Windows文件)文件,并构成可执行文件.
现在,对于每次创建一些.pch文件时都不编译头文件的类比情况,这样它就会被链接器链接起来.
现在,如果在Visula Studio项目的范围内定义了一个预编译的头,那么为什么Visual Studio会抱怨错误(例如**fatal error C1010: unexpected end of file while looking for precompiled header. Did you forget to add '#include "stdafx.h"' to your source?**
)头文件未包含在.cpp文件中.
总结一下,这是我的问题:
为什么在每个.cpp文件中都需要项目的预编译头?
因为你要求它.如果您不想使用它,则需要更改.cpp文件的选项.右键单击它,属性,C/C++,预编译标题,"创建/使用"="不使用预编译头".默认设置为"使用".这样做没什么意义.
每个编译单元中的预编译头如何优化编译过程?
不必解析#includes.当你特别有用#include <windows.h>
.在具有数百个.cpp文件的大型项目中,节省的时间大约为秒,这些文件可累计达数分钟.到目前为止,它是加速编译器的最便宜的方式,不会降低生成代码的质量.
然后剩余的98%将被添加到相应的.o文件中?
当然不是.
归档时间: |
|
查看次数: |
5149 次 |
最近记录: |