0

我在使用 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 处理了这个问题。也许我没有设置路径。

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

4

1 回答 1

1

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

于 2013-08-18T12:02:35.777 回答