64位linux下Qt关于64位和32位库的问题

喵喵嘀嘀咚 2016-10-24 07:14:05
首先说下系统环境,是64位ubuntu12.04,装的是qt-everywhere4.8.1,然后必须引用外部的32位的库,没有源代码所以没法编译成64位
直接引用就出一大堆这个错误:
19:09:17: Running steps for project GenStl_C...
19:09:17: Configuration unchanged, skipping qmake step.
19:09:17: Starting: "/usr/bin/make" -w
make: Entering directory `/home/killer/Desktop/GenStl_C_FactoryMode_git'
g++ -Wl,-O1 -Wl,-rpath,/usr/local/Trolltech/Qt-4.8.1/lib -o Digisizer_QT main.o mygif.o MyLabel.o moc_mygif.o moc_MyLabel.o qrc_DigiSizerPic.o -L/usr/local/Trolltech/Qt-4.8.1/lib -L/usr/lib64/ -lGenStl_C -lMyStich -L/usr/local/lib -lopencv_core -lopencv_highgui -lopencv_imgproc -lQtGui -L/usr/local/Trolltech/Qt-4.8.1/lib -L/usr/X11R6/lib64 -lQtNetwork -lQtCore -lpthread
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.6/../../../../lib/libGenStl_C.so when searching for -lGenStl_C
/usr/bin/ld: skipping incompatible /usr/lib/../lib/libGenStl_C.so when searching for -lGenStl_C
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.6/../../../libGenStl_C.so when searching for -lGenStl_C
/usr/bin/ld: skipping incompatible /usr/lib/libGenStl_C.so when searching for -lGenStl_C
/usr/bin/ld: cannot find -lGenStl_C
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.6/../../../../lib/libMyStich.so when searching for -lMyStich
/usr/bin/ld: skipping incompatible /usr/lib/../lib/libMyStich.so when searching for -lMyStich
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.6/../../../libMyStich.so when searching for -lMyStich
/usr/bin/ld: skipping incompatible /usr/lib/libMyStich.so when searching for -lMyStich
/usr/bin/ld: cannot find -lMyStich
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.6/../../../../lib/libopencv_core.so when searching for -lopencv_core
/usr/bin/ld: skipping incompatible /usr/lib/../lib/libopencv_core.so when searching for -lopencv_core
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.6/../../../libopencv_core.so when searching for -lopencv_core
/usr/bin/ld: skipping incompatible /usr/lib/libopencv_core.so when searching for -lopencv_core
/usr/bin/ld: cannot find -lopencv_core
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.6/../../../../lib/libopencv_highgui.so when searching for -lopencv_highgui
/usr/bin/ld: skipping incompatible /usr/lib/../lib/libopencv_highgui.so when searching for -lopencv_highgui
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.6/../../../libopencv_highgui.so when searching for -lopencv_highgui
/usr/bin/ld: skipping incompatible /usr/lib/libopencv_highgui.so when searching for -lopencv_highgui
/usr/bin/ld: cannot find -lopencv_highgui
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.6/../../../../lib/libopencv_imgproc.so when searching for -lopencv_imgproc
/usr/bin/ld: skipping incompatible /usr/lib/../lib/libopencv_imgproc.so when searching for -lopencv_imgproc
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.6/../../../libopencv_imgproc.so when searching for -lopencv_imgproc
/usr/bin/ld: skipping incompatible /usr/lib/libopencv_imgproc.so when searching for -lopencv_imgproc
/usr/bin/ld: cannot find -lopencv_imgproc
collect2: ld returned 1 exit status
make: Leaving directory `/home/killer/Desktop/GenStl_C_FactoryMode_git'
make: *** [Digisizer_QT] Error 1
19:09:17: The process "/usr/bin/make" exited with code 2.
Error while building/deploying project GenStl_C (target: 桌面)
When executing step 'Make'
外部库有问题

然后我百度了下,在一些参数上加上 -m32 参数就出这个错误:
/usr/bin/ld: skipping incompatible /usr/local/Trolltech/Qt-4.8.1/lib/libQtGui.so when searching for -lQtGui
/usr/bin/ld: skipping incompatible /usr/local/Trolltech/Qt-4.8.1/lib/libQtGui.so when searching for -lQtGui
/usr/bin/ld: cannot find -lQtGui
/usr/bin/ld: skipping incompatible /usr/local/Trolltech/Qt-4.8.1/lib/libQtNetwork.so when searching for -lQtNetwork
/usr/bin/ld: skipping incompatible /usr/local/Trolltech/Qt-4.8.1/lib/libQtNetwork.so when searching for -lQtNetwork
/usr/bin/ld: cannot find -lQtNetwork
/usr/bin/ld: skipping incompatible /usr/local/Trolltech/Qt-4.8.1/lib/libQtCore.so when searching for -lQtCore
/usr/bin/ld: skipping incompatible /usr/local/Trolltech/Qt-4.8.1/lib/libQtCore.so when searching for -lQtCore
/usr/bin/ld: cannot find -lQtCore
collect2: ld returned 1 exit status
make: Leaving directory `/home/killer/Desktop/GenStl_C_FactoryMode_git'
make: *** [Digisizer_QT] Error 1
18:41:14: The process "/usr/bin/make" exited with code 2.
Error while building/deploying project GenStl_C (target: 桌面)
When executing step 'Make'

qt内部的64位库有问题,怎么解决?

...全文
1428 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
jklinux 2017-05-07
  • 打赏
  • 举报
回复
g++ 编译时加上-m32表示要编译出32位的程序,也需要依赖相应的32位库。 不加上m32就是表示编译出64位的程序,需要相应的64位动态库。 /usr/bin/ld: cannot find -lGenStl_C 这个表示找不到64位的libGenStl_C (看样子像自己写的) g++ 加上-m32时的报错,表示没有32位的QT动态库。 楼主只有两种选择,一种用64位, 把相应的库编出64位的版本 另一种可以用qt源码编出32位的Qt库
qq_21396415 2017-05-01
  • 打赏
  • 举报
回复
问题怎么解决的,我也是这个问题
dext 2016-10-25
  • 打赏
  • 举报
回复
如果要交叉编译的话,建议恶补交叉编译的相关知识。
64 位代码 和 32位 不能混用
喵喵嘀嘀咚 2016-10-24
  • 打赏
  • 举报
回复
这是相关照片

16,213

社区成员

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

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