未找到参考符号

Referenced symbol not found

我正在尝试 运行 使用 LD_PRELOAD 预加载我的库的程序。在 运行 时,程序抛出以下错误。

ld.so.1: gdbser64: fatal: relocation error: file libmy.so: symbol _ZN10__cxxabiv118register_exit_codeEPFYvvE: referenced symbol not found

libmy.so 没有在任何地方使用 register_exit_code 符号。可能是 libmy.so 链接的标准库正在使用该函数。但是我找不到谁在使用这个符号或者谁定义了它。

它在 Solaris 上,使用 CC(solaris cpp compiler) 编译。

你所有的源代码 files/libs 都是用 -std=c++0x 构建的吗?

否则,Oracle docs 建议如果您使用 -lstdc++ 链接,那么您应该使用 -lstdc++ -lgcc_s -lCrunG3