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

posted on 2014-05-28 20:00  CT1104  阅读(1787)  评论(0编辑  收藏  举报