Cmake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。他能够输出各种各样的makefile或者project文件
apt-get
install cmake
linux操作系统上面开发程序, 光有了gcc 是不行的
它还需要一个
build-essential软件包
作用是提供编译程序必须软件包的列表信息
也就是说 编译程序有了这个软件包
它才知道 头文件在哪 才知道库函数在哪
还会下载依赖的软件包
最后才组成一个开发环境
当然 build-essential包 安装时 需要的依赖包 有些你用不上
软件包: build-essential 安装方法:
sudo apt-get install build-essential
openCVan安装:
可能依赖一些包:
apt-get install build-essential libtiff4-dev
libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg62-dev cmake
libswscale-dev libjasper-dev pkg-config
本文参考http://stackoverflow.com/questions/12335848/opencv-program-compile-error-libopencv-core-so-2-4-cannot-open-shared-object-f
接下来:
下载源码包、根据里面的cmakelist.txt用cmake-gui的图形界面进行编译,得到makefile文件,在通过make编译,最后通过make
install进行安装。
对于测试部分用的是:
终端下转到刚才解压的OpenCV-2.2.0\samples\c文件夹下,里面有一个build_all.sh脚本,执行之:bash
./build_all.sh,成功之后,ls命令查看,生成了一个facedetect执行文件,./facedetect执行之!如果弹出一个捕捉脸
部的窗口,那么恭喜,你成功了。
关于linux中找不到共享库的解决方案
如 opencv中编译没错,但是运行时却出现
注:如果在最后执行facedetect时报错:./facedetect: error while loading shared libraries:
libopencv_core.so.2.2: cannot open shared object file: No such file or
directory。
这是因为你没有装ffmpeg,这好办,输入sudo -apt-get install
ffmpeg安装,安装成功之后再执行facedectect即可!
error while loading shared libraries: libopencv_core.so.2.4: cannot open
shared object file: No such file or directory
解决方法:
首先共享库文件一般在/usr/local/lib下可以找到,如果找到该共享库的话,那么在
/etc/ld.so.conf.d/xxxx.conf 注意(xxxx.conf)是你自己命名的。比如我缺少opencv库
那么我就写 opencv.conf。
接下来,就在xxxx.conf文件中写path路径,比如说共享库在/usr/local/opencv/libopencv_core.so.2.4中的话,你就写
/usr/local/opencv/
最后 sudo ldconfig -v 如果有共享库输出的话,就证明成功了。
References:
About shared libraries on Linux:
http://www.eyrie.org/~eagle/notes/rpath.html
About adding the OpenCV shared
libraries: http://opencv.willowgarage.com/wiki/InstallGuide_Linux