月下的博客

  C++博客 :: 首页 :: 联系 :: 聚合  :: 管理
  34 Posts :: 0 Stories :: 59 Comments :: 0 Trackbacks

常用链接

留言簿(5)

我参与的团队

搜索

  •  

最新评论

阅读排行榜

评论排行榜

  前两天,给自个儿写的工程加个预编译头,没想到貌似简单的活就出错了。
  以前自己都是建立工程的时候加好,自己也没太在意,也就这么过了,这次给旧工程加,想想也就手动添加了个xxx.h,然后在project properties里改了下设置 use procompiled header,但这样就错了,于是自己也懒的想,就去ogre的工程(ogremain)里对了一遍,看看自己的设置也对,写法上,include也都写在每个cpp前了,也没二到在.h文件里include预编译头。后来网上查查,突然发现忘记添加预编译头对应的cpp文件了。。。一加世界清静了。。
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  好吧。。我是二了。。不过回头想想,ogre是怎么做到这一点的呢,ogremain工程里只有一个OgreStableHeader.h,而没有cpp,我对编译这些不太清楚,但依稀觉得precompiled这东西就是先生成一个obj文件包含了我想include的头,而一个obj文件对应一个cpp单元,而没有cpp应该就是没有这个obj所以导致错误,但ogre是怎么做到的呢?求大家解答。
posted on 2011-01-21 12:37 月下圆舞曲 阅读(461) 评论(3)  编辑 收藏 引用 所属分类: 杂事

Feedback

# re: 对OGRE预编译头的一点小疑问 2011-02-22 23:32 Lazy
楼主理解错预编译头的含义了。
预编译头是用于避免重复解析固定的头文件用的,并不是生成.obj文件。不同的编译器对预编译的规定不一样,gcc就不需要.cpp文件。

至于OgreStableHeader.h,我并没有看代码,不过大抵只是把一堆常用的头文件通通包含进来,用来减少包含指令的,很多功能单一的代码库都有类似的做法。不是预编译头。
  回复  更多评论
  

# re: 对OGRE预编译头的一点小疑问 2011-02-23 08:57 月下圆舞曲
@Lazy
对编译这类东西总是很小白。。基本都是乱用乱猜。
我也想过会不会是你说的,不过在ogre的工程设置里是的确将OgreStableHeader.h作为预编译头设置的。。
其实直接去ogreforum上问的了。。我是懒的写英文。。  回复  更多评论
  

# re: 对OGRE预编译头的一点小疑问 2011-02-23 08:58 月下圆舞曲
@Lazy
不过大抵只是把一堆常用的头文件通通包含进来在ogre的工程里是包含在OgrePrerequisites.h里的~0~  回复  更多评论
  


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理