我试图在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
感谢,
答案 0 :(得分:1)
如果您正在调用声明为隐藏的函数,我相信您会收到该错误,例如
int set_hidden(void) __attribute__((visibility("hidden")));
并且它没有在同一个共享对象中定义。
要解决此问题,您还必须链接包含set_hidden
定义的目标文件,或删除对它的调用。