共享库重定位R_X86_64_PC32错误

时间:2012-03-15 21:10:05

标签: c linux shared

我试图在64位Ubuntu盒子上制作32位库。我正在创建.so如下

gcc - shared -Wl,-soname,libtest.so * .o

我正在获取/ usr / bin / ld:在制作共享对象时,不能使用符号“set_bright”重定位R_X86_64_PC32;使用-fPIC重新编译。

我已经尝试使用-fPIC进行编译了。它不起作用。

如果在创建.so时编译.c或某些标记需要使用任何标记,请告诉我.so

感谢,

1 个答案:

答案 0 :(得分:1)

如果您正在调用声明为隐藏的函数,我相信您会收到该错误,例如

int set_hidden(void) __attribute__((visibility("hidden")));

并且它没有在同一个共享对象中定义。

要解决此问题,您还必须链接包含set_hidden定义的目标文件,或删除对它的调用。