如何强制GCC编译未使用的函数?

Nat*_*man 9 optimization gcc

我将项目中的一些代码拆分为一个单独的库,以便在另一个应用程序中重用.这个新库定义了各种功能但没有实现,我当前的项目和其他应用程序都将实现这些功能的自己版本.

我在原始项目中实现了这些功能,但它们不会在其中的任何位置调用.它们只被这个新库调用.结果,编译器将它们优化掉,并且我得到链接失败.当我向这些函数添加一个虚拟调用时,链接失败就会消失.

有没有办法告诉GCC编译这些函数,即使它们没有被调用?

我正在使用-O2SuSE linux(x86-64_linux_2.6.5_ImageSLES9SP3-3)使用gcc 4.2.2进行编译.

Pau*_*l R 16

您可以尝试__attribute__ ((used))- 请参阅gcc手册中的声明函数属性.