加上了-fPIC这个参数以后,就没有再出现这个错误
gcc -fPIC -shared -o hack.so hack.c
-fPIC 作用于编译阶段,告诉编译器产生与位置无关代码(Position-Independent Code),
则产生的代码中,没有绝对地址,全部使用相对地址,故而代码可以被加载器加载到内存的任意
位置,都可以正确的执行。这正是共享库所要求的,共享库被加载时,在内存的位置不是固定的。
本文介绍如何通过添加-fPIC参数来解决编译共享库时遇到的问题。-fPIC可以使编译器生成位置无关代码,确保代码可以加载到内存的任意位置并正确执行。
加上了-fPIC这个参数以后,就没有再出现这个错误
gcc -fPIC -shared -o hack.so hack.c
-fPIC 作用于编译阶段,告诉编译器产生与位置无关代码(Position-Independent Code),
则产生的代码中,没有绝对地址,全部使用相对地址,故而代码可以被加载器加载到内存的任意
位置,都可以正确的执行。这正是共享库所要求的,共享库被加载时,在内存的位置不是固定的。
1156
2365
3053

被折叠的 条评论
为什么被折叠?