代码编译机器 centos 6.5
用户服务器版本:Red Hat Enterprise Linux Server release 5.8 (Tikanga)
拷贝lib目录,bin目录,到用户服务器
软件安装过程记录:
qt 4.8.6 用户服务器本机编译
我正确设置了QTDIR QTLIB QTINC LD_LIBRARY_PATH这几个环境变量
运行报错内容:
JobExe: symbol lookup error: libJob.so: undefined symbol: _ZZN13HuffmanCodingILi256EE6decodeEPmPhmS1_E6setbit
报错字符串可以用c++filt查看,是程序内部函数。
HuffmanCoding<256>::decode(unsigned long*, unsigned char*, unsigned long, unsigned long*)::setbit
请问这个问题应该怎么解决,是需要在rhel 5.8上编译吗?因为不想源代码在用户服务器上编译。
每个程序报错都类似
谢谢~
------解决思路----------------------
首先确定这个函数是Qt库的、你的代码的,还是依赖库的。如果是依赖库的,替换相关库的版本即可。如果是Qt或你的,最好找台机子,安装与服务器一样的系统,然后编译。再测试。
------解决思路----------------------
undefined symbol
这个不是程序问题,是你安装,或者说复制库的问题。
这也不是qt的问题,你在当前机器上写个.so,到另一台机器用,路径没设好,就是找不到它的。