qt no matching function for call to(QT发布中遇到的问题 wufan的专栏 博客频道 CSDN.NET)
分类:
qt
2012-04-05 11:15 8人阅读 评论(0) 收藏 举报最近开始研究qt ,不可避免的就要碰到qt的发布 。书上面的例子不包括这一部分 ,网上这方面资料很多(其实仔细看看就是qt自带assistant里面翻译过来的 ,所以有问题还是先查阅assistant)
一篇可以参考的qt在x11平台的发布
http://blog.sina.com.cn/s/blog_7a9ade2c0100vcfh.html
先尝试动态编译 ,从一台虚拟机(ubuntu)中生成了运行文件 ,然后拷贝到了另外一台虚拟机中(red hat) ,把所需要的文件也拷贝到运行文件所在目录 ,再运行sh文件 ,显示
error while loading shared libraries:libQtCore.so.4: cannot open shared objectfile
输入ls指令 ,明明我已经把so文件拷贝进去了啊 ,这是为什么呢?
再重新查阅资料 ,了解到可以利用ldd指令来查看依赖关系 ,那就试试吧
可以发现
version GLIBC_2.9 not found (required by ./libQtCore.so.4)
原来是由于两个操作系统版本差异过大,对应的系统libc链接库不一样 ,导致qt库文件无法加载 ,自然我们的测试程序也无法运行了 。(这里还可以拓展了解下libc 和gcc 之间的关系)
2个系统的libc版本为
ubuntu 2.12
red hat 2.5
解决方案:
1.动态编译,尽量在同一版本下的linux系统中运行(留给下午 ,因为要创建一个新虚拟机)
2.尝试使用静态编译 。(这个留给下午做)
3.提升当前虚拟机中的glibc版本(似乎也很麻烦 。 。 。)
提升glibc 一篇可以参考的博文
http://blog.csdn.net/xlsp/article/details/6395993
创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!