【发布时间】:2013-08-30 11:23:46
【问题描述】:
我有BeagleBone Black 和Ubuntu 12.04(精确穿山甲)。我使用以下命令从 apt 下载了OpenCV 库:
sudo apt-get install -y libopencv-dev
此命令安装了所需的头文件和库。然后我编译了我自己的程序,它只显示一个带有以下命令的窗口:
gcc -I/usr/inlcude/ -I/usr/include/opencv2/ -L/usr/lib/ -lopencv_core -lopencv_highgui -lm opencv_test.c -o test
几秒钟后,它显示它无法找到带有“lrint”的引用等等,最后显示了 cvNameWindow、cvShowImage 等的链接错误。
我认为这可能是安装库的问题。我下载了最新的 OpenCV 源代码,在我的 Ubuntu 机器上使用 -DUSE_NEON=ON 标志交叉编译了 OpenCV wiki 上提供的代码。我将这些头文件和库复制到了ext4 格式的额外分区中。我再次发出以下命令:
gcc -I/usr/inlcude/ -I/media/misc/opencv/include/opencv/ -I/media/misc/opencv/include/ -L/usr/lib/ -L/media/misc/opencv/lib/ -lopencv_core -lopencv_highgui -lm opencv_test.c -o test
注意:/media/misc/ 是额外的分区。
这个命令给了我和之前一样的输出。现在我要说到点子上了。也许我没有发出正确的命令。
我还将 gcc 更改为 g++,它给了我如下错误:
unable to find reference cvNamedWindow
unable to find reference cvShowImage
等等
【问题讨论】:
-
这两个视频你试过了吗? www.youtube.com/watch?v=Sb0noQkTTjA 和 www.youtube.com/watch?v=T29BLCh1I54
-
你的命令行有错字,你有-I/usr/inlcude/,但是-I/usr/include/应该是正确的。但是我没有在这里安装 opencv 以了解可能产生的影响。
-
是的,但我没有在现有命令中打错字。虽然,我在链接库时遇到了问题。
-
我找到了一种方法,我下载了 Angstrom 映像,抓取了 opencv 库,并将这些库手动包含到我现有的 Beaglebone Sdcard Image 中。现在它正在工作:D
标签: opencv ubuntu linker arm beagleboneblack