允许使用GCC进行特定的未定义引用



在带有GCC的C++程序中,我使用链接器标志-Wl,--no-undefined,因此如果存在未定义的引用,链接器将抛出错误。是否有一个pragma或我可以放在代码中的特定符号旁边的东西,我希望在链接时允许其未定义?

一种选择是使该符号变弱:

弱符号表示链接可执行文件和可链接格式(ELF(对象文件期间的特殊注释符号。默认情况下,在没有任何注释的情况下,对象文件中的符号是强符号。在链接过程中,强符号可以覆盖同名的弱符号。相反,共享一个名称的两个强符号在链接时间内会产生链接错误。链接二进制可执行文件时,弱声明符号不需要定义。相比之下,(默认情况下(声明的没有定义的强符号会触发未定义的符号链接错误。

例如:

#pragma weak power2
int power2(int x);

最新更新