我正在试图在一个64位Ubuntu的盒子上做32位库。 我正在创build.so,如下所示
gcc – 共享-Wl,-soname,libtest.so * .o
我得到/ usr / bin / ld:重新定位R_X86_64_PC32对象符号“set_bright”不能用于制作共享对象;用-fPIC重新编译。
我已经尝试编译与-fPIC。 它没有工作。
请让我知道,如果我需要使用任何标志,而编译.C或一些标志,而创build.so
谢谢,
我相信你会得到那个错误,如果你在调用一个声明为隐藏的函数,例如
int set_hidden(void) __attribute__((visibility("hidden")));
并没有在同一个共享对象中定义。
为了解决这个问题,你还必须链接包含set_hidden
定义的目标文件,或者删除对它的调用。