是否可以从头文件创建目标文件(.o)? (.h / .hpp)。所有代码都在标题中内联...
答案 0 :(得分:6)
是的,只需告诉编译器将其编译为C ++文件,并将结果写入.o
或.obj
文件。但是如果所有函数都是内联函数,则代码无需执行任何操作,因此生成的对象文件中不会包含任何代码。所以这样做通常没有意义。
答案 1 :(得分:1)
不,但是最近的GCC(例如Linux上的GCC 4.7)能够使用precompiled-header工具编译一个头文件。警告,只有在您的应用程序的每个源文件都包含一个头文件(通常包括系统或第三方库头)时,这才能正常工作。
另请参阅this reply,其中解释了更多原因。
您可能会对链接时间优化感兴趣,例如:通过在编译和链接时将-flto传递给g++