Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 在x86上为ARM构建opencv应用程序_Linux_Opencv_Build_Arm_Raspberry Pi - Fatal编程技术网

Linux 在x86上为ARM构建opencv应用程序

Linux 在x86上为ARM构建opencv应用程序,linux,opencv,build,arm,raspberry-pi,Linux,Opencv,Build,Arm,Raspberry Pi,我在使用ARM的opencv库构建应用程序时遇到问题。 我为我的电脑安装了Opencv 2.4.6.1,帮助编写了一个教程 之后,我尝试为我的电脑构建示例: gcc main.c -o main ´pkg-config --libs --clags opencv´ -lpthread 它起作用了 接下来,我安装ARMLinuxGnueAbiHFGCC,编写示例并进行测试。它起作用了 现在我为ARM制作opencv库 cd /opt/opencv-2.4.6.1/platforms/linux

我在使用ARM的opencv库构建应用程序时遇到问题。 我为我的电脑安装了Opencv 2.4.6.1,帮助编写了一个教程

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

gcc main.c -o main ´pkg-config --libs --clags opencv´ -lpthread
它起作用了

接下来,我安装ARMLinuxGnueAbiHFGCC,编写示例并进行测试。它起作用了

现在我为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-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-linux-gnueabihf-raspbian/bin//lib/gcc/arm-linux-gnueabihf/4.7.2/../../../../../../arm-linux-gnueabihf/bin/ld:找不到-lhighgui collect2:错误:ld返回了1个退出状态

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


我做错了什么以及如何修复它?

您使用OpenCV库的旧名称:
-lcv-lhighgui
。OpenCV具有2.0版本的新结构。使用以下标志:
-lopencv_core-lopencv_highgui

是否应改为-I/opt/opencv-2.4.6.1/rpi/lib be-L?Hi。谢谢,但一定是出了什么问题。我将-lcv更改为-lopencv_core,并将-lhighgui更改为-lopencv_highgui。问题仍然是一样的。添加-L/opt/opencv-2.4.6.1/rpi/lib option(-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。