Moqim Flourite. 2022-08-04 18:26 采纳率: 0%
浏览 168
已结题

虚拟机把Qt文件传到树莓派,然后在树莓派上编译运行,但是make报错,解决不了。

问题遇到的现象和发生背景

虚拟机把Qt文件传到树莓派,然后在树莓派上编译运行,但是make报错,解决不了。

问题相关代码,请勿粘贴截图

scp -r /home/user/edog-track/ pi@192.168.12.1:/home/pi/
qmake -makefile ../edog_track/edog_track.pro
make

运行结果及报错内容

root@raspberrypi:/home/pi/edog-track/build# make
g++ -Wl,-O1 -o edog_track main.o lcmutil.o colorgroup.o mythread.o udputil.o -L/usr/local/lib/ -llcm /usr/local/lib/arm-linux-gnueabihf/libopencv_videoio.so -lopencv_core -lopencv_features2d -lopencv_flann -lopencv_highgui -lopencv_imgproc -lopencv_ml -lopencv_objdetect -lopencv_photo -lopencv_stitching -lopencv_video /usr/local/lib/arm-linux-gnueabihf/libopencv_core.so /usr/local/lib/arm-linux-gnueabihf/libopencv_imgcodecs.so -lQt5Network -lQt5Core -lpthread
main.o: file not recognized: file format not recognized
collect2: error: ld returned 1 exit status
make: *** [Makefile:139: edog_track] Error 1

我的解答思路和尝试过的方法

他说main.o的问题,但是试过了没用。
重新烧录虚拟机、镜像文件,都没用orz.

我想要达到的结果

make成功,并能看到可执行文件。

img

img

  • 写回答

3条回答 默认 最新

  • luminous_gg 2022-08-04 18:39
    关注

    树莓派上的linux和你虚拟机的linux架构不一样。QT库不能直接移植上去,需要找树莓派版本的qt库,然后再去链接编译。

    ld报错说的就是这个。
    main.o错误是因为你工程没有清空,需要把.o这些文件删除干净,在树莓派上重新构建。但是问题又来了,你构建的前提是qt库正确

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 8月8日
  • 创建了问题 8月4日

悬赏问题

  • ¥20 ANSYS fluent烟雾扩散仿真
  • ¥15 java 在同一包下无法跨文件引入自己写的类,也无法导包过去
  • ¥15 求帮生成一个lattice diamond的许可证
  • ¥15 大一前端新生求教学解答
  • ¥15 如何制作一个可以查看“网游有序列的装备词条”的软件/插件
  • ¥15 CS2打5E与完美天梯匹配会与服务器断开连接(黑框没标明具体原因)
  • ¥15 求帮助!用赛灵思FPGA XC7A35T对一个频率50MHz的数字信号读取高低电平,只用HR bank普通单端io进行采样可以吗
  • ¥15 训练准确率100%,测试准确率只有50%
  • ¥15 grafana创建dashhabord提示no data sources of type Prometheus Alert
  • ¥15 python用arima时间序列法预测不出结果 急