Ubuntu下OpenCV多文件程序的Makefile

环境:Ubuntu 12.04/13.04 自编译OpenCV 2.4.9

查找了多个版本的Makefile,最终测试以下版本可以成功make.

由于Makefile的“隐晦规则”——只要 make 看到一个[.o]文件,它就会自动的把[.c]文件加在依赖关系中,如果 make找到一个 whatever.o,那么 whatever.c,就会是 whatever.o 的依赖文件。并且 cc -c whatever.c 也会被推导出来,可简写如下,当然[.c]文件得include依赖关系中的[.h]文件。


OBJ = main.o Absolute.o BlobDetect.o DropPixel.o FindLocation.o \
      HSVSegment.o PointMatching.o

SVision : $(OBJ)
	g++ -o SVision $(OBJ) `pkg-config --libs opencv`

$(OBJ) : UavVision.h

.PHONY : cleanall cleanobj
cleanall:
	rm SVision $(OBJ)
cleanobj:
	rm *.o

make的过程中,出现usr/bin/ld: cannot find -lxxx错误,解决办法如下:

确认库文件是否存在,比如-l123, 在/usr/lib, /usr/local/lib,或者其他自定义的lib下有无lib123.so, 如果只是存在lib123.so.1, 那么可以通过ln -sv lib123.so.1 lib123.so,建立一个连接重建lib123.so.


参考:http://www.linuxidc.com/Linux/2014-09/107160.htm

           http://blog.csdn.net/lava555/article/details/7534953

           http://blog.csdn.net/osoon/article/details/5526455

推荐:跟我一起写Makefile (陈皓)

你可能感兴趣的:(LINUX-OPENCV,ubuntu,linux,opencv,makefile)