使用Qt交叉编译使用第三方共享库发生的编译连接和运行查找的问题

Qt_Min 2016-05-11 07:17:22
我在Ubuntu12.04上用QT交叉编译一个程序,这个程序中,使用了几个第三方的库mylib.so(使用交叉编译生成的),这个mylib.so在ubuntuPC的位置是opt/mylib/mylib.so,用Qt编译连接程序的时候,我通过在pro文件里添加LIBS+=/opt/mylib/mylib.so的方法,可以编译和链接成功,当我把生成的程序下载到开发板上,把mvlib.so放到开发板的/lib中,然后去运行程序的时候,发生了奇怪的现象,在ARM开发板上可以正常运行,但是要保证这些库在开发板上的存在路径和交叉编译时PC上的库存在路径完全一致,否则会出现找不到共享库的问题,即使这些库在开发板的/usr/lib目录下已经存在,程序依然找不到它们,也就是说,我的mylib.so只能放在和ubuntuPC一样的//opt/mylib/mylib.so这个地方,否则程序会提示无法找到这个库,我非常想知道,要解决这样的问题,需要设置什么吗?
...全文
447 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
renwotao2009 2016-05-14
  • 打赏
  • 举报
回复
没用过qt ,如果是界面编译器的qt,应该有地方设置
renwotao2009 2016-05-14
  • 打赏
  • 举报
回复
http://m.myexception.cn/qt/268260.html,这个里面提到一点,你可以自定义下QMAKE_RPATHDIR 为空
Qt_Min 2016-05-14
  • 打赏
  • 举报
回复
引用 1 楼 renwotao2009 的回复:
交叉编译时是不是使用了gcc的-R或-rparth 选项指定了动态库的查找路径,这个路径写入到可执行文件中了
果然在qt生成的makefile里面找到了-rpath,怎么设置qt才能去掉这个呢?
renwotao2009 2016-05-11
  • 打赏
  • 举报
回复
引用 1楼renwotao2009 的回复:
交叉编译时是不是使用了gcc的-R或-rparth 选项指定了动态库的查找路径,这个路径写入到可执行文件中了
看下ld不是gcc的选项是设置-R或-rpath
renwotao2009 2016-05-11
  • 打赏
  • 举报
回复
交叉编译时是不是使用了gcc的-R或-rparth 选项指定了动态库的查找路径,这个路径写入到可执行文件中了

23,120

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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