/../../../../arm-none-linux-gnueabi/bin/ld: cannot find -lcv
collect2: ld returned 1 exit status
这里提示lcv找不到,为什么呢?
还是我之前说的,网上的文章都是几年前的了,好老了。
打开我们opencv的lib可以看下,根本没有这些个库了,
所以提示自然找不到,所以要改成我们现在opencv的库:
arm-linux-g++ -Wno-psabi -I/usr/local/opencv/install_opencv/include/opencv/ -L/usr/local/opencv/install_opencv/lib/ -lopencv_core -lopencv_highgui -lpthread -lrt -o test test.cpp
出现两个warning:
/usr/local/arm/opt/FriendlyARM/toolschain/4.4.3/bin/../lib/gcc/arm-none-linux-gnueabi/4.4.3/../../../../arm-none-linux-gnueabi/bin/ld: warning: ../../lib/libopencv_imgproc.so, needed by /usr/local/opencv/lib_opencv/lib//libopencv_highgui.so, not found (try using -rpath or -rpath-link)
/usr/local/arm/opt/FriendlyARM/toolschain/4.4.3/bin/../lib/gcc/arm-none-linux-gnueabi/4.4.3/../../../../arm-none-linux-gnueabi/bin/ld: warning: ../../lib/libopencv_core.so, needed by /usr/local/opencv/lib_opencv/lib//libopencv_highgui.so, not found (try using -rpath or -rpath-link)
将需要到的那三个.so文件:libopencv_core.so libopencv_highgui.so libopencv_imgproc.so将这些库复制到编译器的lib中:
sudo cp -d *libopencv_core* *libopencv_highgui* *libopencv_imgproc* /usr/local/arm/opt/FriendlyARM/toolschain/4.4.3/arm-none-linux-gnueabi/lib
以上借用风筝大神博客
本人编译使用命令
arm-cortex_a8-linux-gnueabi-g++ -Wno-psabi -I/usr/local/opencv/install_opencv/include/opencv/ -L/usr/local/opencv/install_opencv/lib/ -lopencv_core -lopencv_highgui -lpthread -lrt -o video1 video1.cpp
然后把编译出来的test文件放到开发板上执行。
测试二:
1 #include<opencv2/core/core.hpp>
2 #include<opencv2/highgui/highgui.hpp>
3 #include<iostream>
4
5 using namespace cv;
6 using namespace std;
7
8 int main( )
9 {
10 //载入图片
11 Mat image= imread("girl.jpg");
12 Mat logo= imread("fly.jpg");
13 //定义一个Mat类型,用于存放,图像的ROI
14 Mat imageROI;
15
16 imageROI= image(Rect(10,10,logo.cols,logo.rows));//定义一个左上角点坐标为(_x, _y)的cols*rows矩形窗口
17
18 //将logo加到原图
19 //参数:图、权重、图、权重、添加的常数项、输出图
20 addWeighted(imageROI,0.5,logo,0.3,0.,imageROI);
21
22 cout << "start add picture......\n" << endl;
23 //输出一张jpg图片到工程目录下
24 imwrite("fly_girl.jpg",image);
25
26 waitKey();
27
28 return 0;
29 }
Makefile:
1 CC = arm-linux-g++
2 LFLAGS = -Wno-psabi
3 LIBS = -L/usr/local/opencv/install_opencv/lib/ -L/work/qt/my_qt/lib
4 CPPFLAGS = -lQt5Widgets -lQt5Gui -lQt5Core -lpthread -lopencv_core -lopencv_highgui -lpthread -lrt
5 LINC += -I/usr/local/opencv/install_opencv/include/opencv/
6 objs := open
7 out := open
8
9 $(out):$(objs).cpp
10 ${CC} ${LFLAGS} ${LIBS} ${LINC} ${CPPFLAGS} -o $@ $^
11
12 clean:
13 rm $(out)
这是girl.jpg图:
这是fly.jpg图:
这是使用opencv合成的效果图: