Ubuntu 12.04 + opencv 2.4.1 + Qt 4.8.3 + Qt creater 2.5.2 安装配置

来源:互联网 发布:淘宝账号解封软件 编辑:程序博客网 时间:2024/06/14 04:19
整体参考:http://www.cnblogs.com/tornadomeet/archive/2012/07/10/2584702.html


1. opencv库的安装参考http://www.samontab.com/web/2012/06/installing-opencv-2-4-1-ubuntu-12-04-lts/
最好按照上面的步骤安装,提供更多支持,opencv.org有更简便的办法,但貌似很多东西没装上。


2.Qt库编译安装参考:http://www.linuxidc.com/Linux/2012-06/62606.htm
注意 ./configure 时最好只制定路径 -prefix 其他不要乱设,容易出问题
安装完最好不要make clean 避免出现找不到库文件的错误以及以后可以重新编译数据库驱动。
安装过程可能出现 warning ,即使./configure加上 -no-webkit 还是会出现,不过好像不影响。
编译过程出现提示说没有权限什么的,就sudo执行。

如果编译完错误,想重新编译,则(进入make的路径,一般是在解压后的文件夹内如/xxxopensource-src/进行make操作)

直接运行下面的命令就行了。
make   uninstall
make   clean
rm -rf XXX  //XXX 目录
如果是编译过程出错,要重新编译
那就
make clean
然后再
./configure
make && make install

 后记:其实这样还不算是静态编译,要在./configure 加上-static 后面接一些库名,可以查一下




3. Qt creater 安装参考http://www.linuxidc.com/Linux/2012-06/62607.htm
如果安装完出错想卸载,源文件是.bin,应该会有个uninstall文件,给予执行权限,卸载。
4.直接在ubuntu软件中心搜出来的QT,安装完很多东西是没有的,比如运行程序时可能不会出现qtcreater_process_stub,只弹出一个terminal,但找到可执行文件还是可以点击执行的。
5.下载点http://qt-project.org/downloads只有最新版本,老版本可以去ftp下载ftp://ftp.qt.nokia.com/qt/source/
opencv下载点http://sourceforge.net/projects/opencvlibrary/files/
---------------------------------------------------------------------------------------------------------------------------------------------------------------------
在还没装QT想使用opencv的情况下,需要用下列命令编译:
 
g++ canny.c `pkg-config opencv --libs --cflags opencv` -o canny
需要注意的是opencv.org提供的例程中有些是从main函数传参数的,如 ./xxx ./agrv[1]  //当然参数可以带路径的




运行结果如图:





如果不是从主函数传参,则一般需要把图片文件放在.c文件同个目录下。注意程序中图片文件名不要写错。
----------------------------------------------------------------------------------------------------------------------------------------------
安装完QT与QTcreater之后,打开qtcreater 选择tools--option --run & debug --qt version 选择我们安装的/usr/local/qt 4.8.3/bin/qmake 注意每个人的路径有可能是不一样的。
在QTcreater里面使用opencv库时需要注意一点的是,需要将opencv的头文件和库文件与Qt关联起来,所以在双击QtCreator工程下到***.pro文件,在其后面添加下列代码:
 
INCLUDEPATH 
+=  /usr/local/include  \
                             /usr/local/include/opencv  \

                         /usr/local/include/opencv2


LIBS += /usr/local/lib/libopencv_video.so  \
  /usr/local/lib/libopencv_ts.so \
  /usr/local/lib/libopencv_objdetect.so \
  /usr/local/lib/libopencv_ml.so  \
  /usr/local/lib/libopencv_legacy.so \
  /usr/local/lib/libopencv_core.so \
  /usr/local/lib/libopencv_features2d.so  \
  /usr/local/lib/libopencv_imgproc.so \
  /usr/local/lib/libopencv_highgui.so \
  /usr/local/lib/libopencv_gpu.so \
  /usr/local/lib/libopencv_flann.so   \
  /usr/local/lib/libopencv_contrib.so \
  /usr/local/lib/libopencv_calib3d.so


include路径就不用解释了,按照共享库的命名惯例,每个共享库有三个文件名:real name、soname和linker name。真正的库
文件(而不是符号链接)的名字是real name,包含完整的共享库版本号。soname是一个符号链接的名字,只包含共享库的主版本号。
linker name仅在编译链接时使用,gcc 的-L选项应该指定linker name所在的目录。有的linker
name是库文件的一个符号链接,有的linker name是一段链接脚本。上面的LIBS就是linker name


如图,libopencv_ts.so是linker name,libopencv_ts.so.2.4是son name,libopencv_ts.so 2.4.1 是real name

注意:我们在include目录增加opencv2的目录,其实你真的要用的话,要继续深入底层目录,才能直接找到头文件。比如在程序中 #include <opencv2/highgui/highgui.hpp>
这样使用链接的相对路径就能找到头文件
还有路径可能大家都不一样,老版本的opencv动态库名称也不一样。
 
要是嫌麻烦,直接在 /usr/local/Qt-4.8.3/mkspecs/linux-g++/qmake.conf 加入下面命令以及将上面的libs和include都加进去:
QMAKE_INCDIR = /usr/local/include/opencv
QMAKE_LIBS = -lopencv_imgproc  -lopencv_core -lopencv_highgui -lopencv_ml
注:gcc -L选项告诉编译器去哪里找需要的库文件,-L. 表示在当前目录找。-lstack告诉编译器要链接libstack 库,-I选项告诉编译器去哪里找头文件。
编译器默认会找的目录可以用-print-search-dirs 选项查看。其中的libraries 就是库文件的搜索路径列表,各路径之间用:号隔开。编译器会在这些搜索路径以及-L选项指定的路径中查找用-l选项指定的库,比如-lstack,编译器会首先找有没有共享库libstack.so,如果有就链接它,如果没有就找有没有静态库libstack.a ,如果有就链接它。所以编译器是优先考虑共享库的,如果希望编译器只链接静态库,可以指定-static选项。

这样以后新建文件就不用每个都去更改.pro文件了。

如果你使用IDE编译完一个给main函数传参的程序,那也只能去到命令行执行程序并传参数了(其实也可以在项目配置中添加需要的命令行参数),所谓IDE 只是帮你集成了编译以及调试的工具,如给g++,gdb,还有就是帮你链接一些库文件,使你省去一些输入长命令的工作。先执行build ,再把图片文件放进 生成的xxx-build-desktop-Qt_4_8_3__Qt-4_8_3____目录内。