makefile 问题: 如何解决 debug release 各自使用自己的预编译头?

老葱1# 2019-03-27 09:59:00
gcc 缺省根据包含的 *.h 查找 *.h.gch, 这样就无法区分 release debug 了, 难道为了debug release 写2个头文件? 能指定 gch 文件吗? 怎么写?
...全文
563 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
老葱1# 2019-04-06
  • 打赏
  • 举报
回复
终于搞定了: $(shell mkdir debug.gch) $(shell mkdir release.gch) gch_cc=$(ver).gch/c++ $(gch_cc): stdafx.h g++ -std=c++11 -fpermissive -x c++-header $(CXXFLAGS) $(INCS) -w $(DD) $< -o $@ %.obj: %.cpp $(HFILE) $(gch_cc) g++ -std=c++11 -include $(ver) .....
老葱1# 2019-04-04
  • 打赏
  • 举报
回复
搞这预编译头,也是为提高编译速度。 准备 .cpp 中 include "stdafx.h", 然后 stdafx.h 里就 只 写 #ifdef _debug #include "_stdafx.h” #else #include "_STDAFX.H" #endif 然后 makefile 根据release debug 生成 _stdafx.h.gch _STDAFX.H.gch , 试试 gcc 编译 cpp 时, 能否会找 相应的 gch
老葱1# 2019-04-04
  • 打赏
  • 举报
回复
就是不想 clean 了重新编译。 重新编译太耗时间,受不了。
幽饮烛 2019-04-01
  • 打赏
  • 举报
回复
为什么要两个呢,用一个就行,从 debug 到 release 编译重新生成预编译头,强制清理已有的预编译头。
zhxianbin 2019-04-01
  • 打赏
  • 举报
回复
*.h.gch 是什么鬼?
为什么要两个文件,一个文件条件编译不行吗?
老葱1# 2019-04-01
  • 打赏
  • 举报
回复
这个写法真的挫,有没有好的方法 ?
老葱1# 2019-03-28
  • 打赏
  • 举报
回复
cpp 文件开头:
#ifdef _DEBUG
#include "STDAFX.H"
#else
#include “stdafx.h"
#endif


makefile:

gch_f=stdafx.h
gch_d=stdafx.h.gch
ifeq ($(ver),debug)
gch_f=STDAFX.H
gch_d=STDAFX.H.gch


gch_d: gch_f
g++ ...

23,120

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧