使用Qt创建共享库,用到expat,遇到编译问题,求教

qq_39894771 2017-08-18 03:24:13
使用Qt创建C++共享库,用到了expat库,编译时采用添加外部库的方式,将expat库的libexpat.a和include下的头文件添加进去,编译时报错:/home/mycounter/deccker/lib/libexpat.a(xmlparse.o):relocation R_X86_64_32S against '.text' can not be used when making a shared object ; recomplie with -fPIC

请问是什么问题,有什么解决方法!
...全文
526 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_39894771 2017-12-20
  • 打赏
  • 举报
回复
原来基于Linux的机器,要用到外部库的话,一般是先将库拷贝到自己的机器上,重新编译再使用基本就没问题了。如果在其他机器上编译再拷贝到本机使用的话,可能会链接失败的。
zhxianbin 2017-08-22
  • 打赏
  • 举报
回复
没有 libexpat.so 吗?qt自己没有什么编译器吧
qq_39894771 2017-08-21
  • 打赏
  • 举报
回复
我是用Qt编译动态库给linux下的程序用,可以用qt自己的编译器吗? 你是说我在编译libexpat的时候需要加上 -fPIC吗?
jklinux 2017-08-21
  • 打赏
  • 举报
回复
引用 2 楼 qq_39894771 的回复:
我是用Qt编译动态库给linux下的程序用,可以用qt自己的编译器吗? 你是说我在编译libexpat的时候需要加上 -fPIC吗?
如果是在pc系统上的话,就用系统的gcc/g++就可以了。 照报错信息是编译动态库时需要加上"-fPIC"
jklinux 2017-08-18
  • 打赏
  • 举报
回复
recomplie with -fPIC 这句有说libexpat.a(xmlparse.o库需要在编译时带上-fPIC参数哦 还有楼主是作在qt for android上用的动态库吗? 如果是的话还必须得用sdk里提供的编译器来编译动态库才可以的.

23,116

社区成员

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

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