qt从centos到rhel报错

wyx_sky 2014-09-13 06:15:25
代码编译机器 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上编译吗?因为不想源代码在用户服务器上编译。
每个程序报错都类似

谢谢~
...全文
226 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
sxcong 2014-09-19
  • 打赏
  • 举报
回复
undefined symbol 这个不是程序问题,是你安装,或者说复制库的问题。 这也不是qt的问题,你在当前机器上写个.so,到另一台机器用,路径没设好,就是找不到它的。
wyx_sky 2014-09-19
  • 打赏
  • 举报
回复
引用 4 楼 sxcong 的回复:
undefined symbol 这个不是程序问题,是你安装,或者说复制库的问题。 这也不是qt的问题,你在当前机器上写个.so,到另一台机器用,路径没设好,就是找不到它的。
路径没设好,一般是报找不到错误。 现在是可以找到。 我尝试了另一种办法,在5.8系统编译,再拷贝到6.5系统,一切正常。 这个可能确实和系统的兼容性有关。 比如win7编译的程序,放到winxp上,可能不好用。
WeiXiao_365 2014-09-19
  • 打赏
  • 举报
回复
不明觉厉
wyx_sky 2014-09-18
  • 打赏
  • 举报
回复
引用 1 楼 foruok 的回复:
首先确定这个函数是Qt库的、你的代码的,还是依赖库的。如果是依赖库的,替换相关库的版本即可。如果是Qt或你的,最好找台机子,安装与服务器一样的系统,然后编译。再测试。
我有个疑问,为啥其他软件在Linux平台下发布二进制包的时候,不用区分操作系统是rhel5、6版本,或者是centos5、6版本,都可以使用呢? 随便想到的都有apache ant这些都是直接给的二进制包呀? 怎样才能让自己代码在各个版本系统都比较兼容呢?
wyx_sky 2014-09-13
  • 打赏
  • 举报
回复
感谢你的回答。 函数都是自己的,我确定安装与服务器一样的系统可以通过测试。我只是觉得QT这样也还是挺麻烦的,看看大家知不知道是我操作不对还是有更好的解决方案。谢谢
引用 1 楼 foruok 的回复:
首先确定这个函数是Qt库的、你的代码的,还是依赖库的。如果是依赖库的,替换相关库的版本即可。如果是Qt或你的,最好找台机子,安装与服务器一样的系统,然后编译。再测试。
foruok 2014-09-13
  • 打赏
  • 举报
回复
首先确定这个函数是Qt库的、你的代码的,还是依赖库的。如果是依赖库的,替换相关库的版本即可。如果是Qt或你的,最好找台机子,安装与服务器一样的系统,然后编译。再测试。

16,810

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧