c ++动态链接:用于符号查找错误的gcc选项

时间:2016-03-02 12:25:09

标签: c++ dynamic hyperlink lookup symbols

gcc上是否有可用的编译选项来防止运行时出现符号查找错误(并避免在运行时通过生成编译错误发现它)?

实际上,我在执行时有一个未定义的符号:

/path/to/lib/lib.so: undefined symbol _ZNsymbol_name_

gcc可以在编译时阻止用户解决这个问题吗?

1 个答案:

答案 0 :(得分:2)

GCC将在编译时防止此错误,前提是已为其链接提供相关库。

如果您有一个不同的共享库,可能安装了旧版本,那么即使编译成功,您也可能会遇到此错误。

在链接期间,您可以使用ld -z now确保预先解析所有符号。或者您可以使用export LD_BIND_NOW=1来设置环境,以确保在程序运行之前解析所有符号。

我回答了类似的问题here,在有用的教程中我找到了here