iar*_*arp 6 c++ cross-platform precompiled-headers stdafx.h visual-studio
嘿,我过去几天一直在关注learncpp.com tuts,他们说要从.cpp文件中注释掉"#include"stdafx.h"Code :: Blocks.
这是必须的,删除包含线?如果您有数百个文件并从Win7上的Visual Studio更改为Linux上的Code :: Blocks,或者使用mac将其交给其他人,会发生什么?
Ale*_*ler 10
stdafx.h是Visual Studio生态系统中预编译头文件的惯用名称.简而言之,它是一个常规标题,但此文件的内容将被编译一次并重用于项目中的所有cpp文件.
这很有用,因为在大多数项目中,几乎所有翻译单元(cpps)都使用了大量标题(标准库,系统标题,共享项目范围定义),因此在编译期间使用PCH会带来巨大的性能优势
(实际上,PCH是一个解决C++低效编译和链接模型的黑客,我们需要手工维护它是一种耻辱......哎呀,亵渎神灵.)
但是,这也意味着, -只要你的内容stdafx.h是GCC兼容-编译与代码块仍然应该工作,但没有直接的性能优势.
在stdafx.h通过VS"应用程序向导生成不工作了在其他平台上的盒子-它通常包含Windows.h.因此,要使其工作,请使用适当的#ifdef/#endif对保护Windows特定的定义,反之亦然,以适用于Linux或Mac特定的内容.
| 归档时间: |
|
| 查看次数: |
5759 次 |
| 最近记录: |