当前位置: 技术问答>linux和unix
代码从一台32位机上移到另一台32位机上时发生链接错误
来源: 互联网 发布时间:2016-09-14
本文导语: 是这样的,我自己的代码是要生成一个动态链接库,同时工程中还有一个静态库。有两台机器, 都是suse,32位机, 因为B上没有g++(无权限安装),所以在A上生成动态链接库后将整个代码和库拷贝到了B上的对应目录...
是这样的,我自己的代码是要生成一个动态链接库,同时工程中还有一个静态库。有两台机器,
都是suse,32位机,
因为B上没有g++(无权限安装),所以在A上生成动态链接库后将整个代码和库拷贝到了B上的对应目录。
运行后dlopen就报错了,指示这个静态库中的某个函数为undefined symbol。
我就不明白了,明明都是一样的啊。为什么在A上链接运行一点问题都没有,在B上就不行了呢?
都是suse,32位机,
因为B上没有g++(无权限安装),所以在A上生成动态链接库后将整个代码和库拷贝到了B上的对应目录。
运行后dlopen就报错了,指示这个静态库中的某个函数为undefined symbol。
我就不明白了,明明都是一样的啊。为什么在A上链接运行一点问题都没有,在B上就不行了呢?
|
因为B上没有g++(无权限安装),所以在A上生成动态链接库后将整个代码和库拷贝到了B上的对应目录。
-----------------------------
很有可能你这些动态链接库在使用的时候还要用到c++的库。
-----------------------------
很有可能你这些动态链接库在使用的时候还要用到c++的库。
|
从这一行看起来,你在A机器编译时用到了64位的库,而B机器可能没有。
能把详细的报错信息贴出来吗?
|
其实……没权限的机子上可以.bashrc里加PATH="$PATH:$HOME/bin"等等,安装软件用./configure --prefix=$HOME && make && make install