【问题标题】:Build opencv application for ARM on x86在 x86 上为 ARM 构建 opencv 应用程序
【发布时间】:2013-08-13 04:40:52
【问题描述】:

我在使用 ARM 的 opencv 库构建应用程序时遇到问题。 我为我的电脑安装了 Opencv 2.4.6.1,帮助这个教程http://docs.opencv.org/doc/tutorials/introduction/linux_install/linux_install.html#linux-installation

之后我尝试为我的电脑构建示例:

gcc main.c -o main ´pkg-config --libs --clags opencv´ -lpthread

有效。

接下来,我安装 arm-linux-gnueabihf-gcc,编写示例并进行尝试。它有效。

现在我为 ARM 制作 opencv 库

cd /opt/opencv-2.4.6.1/platforms/linux
mkdir build_hardfp
pico arm-gnueabi.toolchain.cmake

change 4.6 to 4.7.2
cd build_hardfp

cmake -DCMAKE_TOOLCHAIN_FILE=../arm-gnueabi.toolchain.cmake -DWITH_TBB=OFF -DWITH_QT=OFF -D SOFTFP=OFF -D WITH_V4L=ON -D WITH_OPENGL=ON  –D CMAKE_BUILD_TYPE=RELEASE –D BUILD_SHARED_LIBS=OFF -D CMAKE_INSTALL_PREFIX=/opt/opencv-2.4.6.1/rpi ../../..
make
make install

现在我的问题是:

我尝试构建我的示例

arm-linux-gnueabihf-gcc -o main main.c -lpthread  -I/opt/opencv-2.4.6.1/rpi/include -I/opt/opencv-2.4.6.1/rpi/include/opencv  -I/opt/opencv-2.4.6.1/rpi/lib -L/opt/opencv-2.4.6.1/rpi/ -lcv  -lhighgui

main.c:在函数“main”中: main.c:12:8: 警告:赋值使指针从整数不进行强制转换 [默认启用] /home/honza/rpi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/../lib/gcc/arm-linux-gnueabihf/4.7.2/../../ ../../arm-linux-gnueabihf/bin/ld:找不到-lcv /home/honza/rpi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/../lib/gcc/arm-linux-gnueabihf/4.7.2/../../ ../../arm-linux-gnueabihf/bin/ld: 找不到 -lhighgui collect2:错误:ld 返回 1 个退出状态

可能我必须为 ARM 架构编译所有依赖项。我想,我在前面的步骤中使用 cmake 处理了这个问题。 也许我没有设置路径。

我做错了什么以及如何解决?

【问题讨论】:

  • 应该将 -I/opt/opencv-2.4.6.1/rpi/lib 改为 -L 吗?

标签: linux opencv build arm raspberry-pi


【解决方案1】:

您使用 OpenCV 库的旧名称:-lcv -lhighgui。 OpenCV 从 2.0 版本开始有了新的结构。使用这个标志:-lopencv_core -lopencv_highgui

【讨论】:

  • 嗨。谢谢,但肯定有其他问题。我将 -lcv 更改为 -lopencv_core,并将 -lhighgui 更改为 -lopencv_highgui。问题还是一样。
  • 添加 -L/opt/opencv-2.4.6.1/rpi/lib 选项(-L 不是 -I)。
  • 我在库中使用了 -L 而没有 -I。我尝试输入 libopencv_core.so 和 libopencv_highgui.so 的所有路径,而不是 -lopencv_core 和 -lopencv_highgui。有新问题:/opt/opencv-2.4.6.1/rpi/lib/libopencv_core.so:无法读取符号:文件格式错误。我可能会为 Raspberry Pi 以 corect 形式编译 OpenCV。
猜你喜欢
  • 1970-01-01
  • 2020-10-16
  • 2013-05-09
  • 2018-04-06
  • 1970-01-01
  • 2016-08-19
  • 1970-01-01
  • 2019-05-01
  • 2016-04-22
相关资源
最近更新 更多