OPENCV的在LINUX下的安装使用注意事项

http://tech.techweb.com.cn/viewthread.php?tid=239096

 

经过几天的努力(快一个星期了。),终于把OPENCV装到LINUX下并且里边的程序可以正常使用了。本来就应该可以顺利完成的东西,不过,其中遇到很多困难也是不争的事实。
/ N3 R+ S; Y8 ]2 z; Q, I' q4 z: G5 X
总结以下几点注意事项,希望对以后的工作有所帮助:(按照OPENCV网站上的步骤安装会出现问题)
& r- A% x. a" F, w: q
  \0 c  Q5 }- x% W/ Q1.安装RH9时记得把GTK+安装上,否则,OPENCV里边所有程序是执行不了的。- Q4 s3 I) h4 Y  {0 l
1 c  l3 G- S. X9 U1 z! d
2.记得修改/etc/ld.so.conf
3 e! z+ C9 [3 ^, ~添加一行/usr/local/lib
) g0 S% W/ n8 E9 e* g6 j0 a! S5 c1 I
# ldconfig (root用户)
2 l% z6 \! W  e' @" }& X9 s/ m' B/ s% h! h  f" W+ y
然后将/usr/local/lib/pkg-config中的opencv.pc 拷贝到/usr/lib/pkg-config中,(如果不做这步,根本编译不起)
: `! i& T6 m1 r8 t& h0 H% n/ E8 N7 c# l( j! W* f, f% v2 ^
可以采用这个操作7 c! w* m- X+ l& m5 ]# Y" P
# cp /usr/local/lib/pkg-config/opencv.pc /usr/lib/pkg-config5 O9 U' m/ t" T; i3 O

- R0 I1 h; [  g3. congfigure的时候,输入./configure --without-python --enable-static8 W6 a! I. \3 ^* D$ F& [" X
0 A5 w9 R, P/ B1 s, ^
注释:在我的电脑上,如果没有第一个WITHOUT,MAKE的时候就会出错,无奈;第二个是为了在编译程序的时候生成静态连接库文件(具体怎么生成我还没搞懂,新手。。。)
& q8 O7 L! I$ S& X* }5 Q
( C/ w- P# P9 a8 t" Y. b# v) q之后,出现的提示信息是:. i4 J7 A$ B0 P% k
./configure, m- m" E- y7 C8 c3 b8 T
checking build system type... i686-pc-linux-gnu8 d* Y5 {- \8 U  I
checking host system type... i686-pc-linux-gnu+ ]* u/ c. P3 g. e8 b! X9 X3 L$ @
checking target system type... i686-pc-linux-gnu# O& [/ X- [! {  O0 u
checking for a BSD-compatible install... /usr/bin/install -c, P% m3 \) g2 A
checking whether build environment is sane... yes
/ z1 B. V$ Z; Y4 Ychecking for gawk... no* \- D  u' G: ?. k. O2 G
... ...
7 c& k; _% N9 p) W' e
3 q9 ?5 v2 ]# T7 A! X' `General configuration ==============" K8 X7 @8 [$ c, ~/ J) s3 f/ }
; R  n$ L6 `! w% a' W8 G
Compiler: g++
6 D) |7 S- X' G9 _  ^0 Z3 z% E1 V3 P: E% S) o/ ~9 A4 d! Z
CXXFLAGS: -Wall -fno-rtti -pipe -O3 -g -march=i686 -ffast-math -fomit-frame-pointer' `# }* x5 @; W- p) c
8 k1 D- W  [& L; O8 J7 ?
Install path: /usr/local
9 g2 y  E8 {* A' X" V6 L2 A% P$ E5 }$ B. p2 d! y6 v( Q1 M7 ~7 Z; u
HighGUI configuration ==================
: M6 H% \4 [4 ~# c3 ~; j7 X4 W0 h7 k$ q" n7 \* c5 g
Windowing system --------------+ @2 D' B8 h; H. d. j; I
Use Carbon / Mac OS X: no
) B5 R' A  ^' ^' rUse gtk+ 2.x: yes+ v! T# @  Q0 @4 X( e
Use gthread: yes
& f! j2 k' @# p: ^; L' d  u" h9 O3 Q0 G/ p# p. Z! [' u- z# S
Image I/O ---------------------9 \7 ~9 @8 }! C: J. ~5 A0 }+ A
Use libjpeg: yes
% ]  e; q3 I3 c" O6 u0 CUse zlib: yes
& v* S' k# q+ s6 i" N* _Use libpng: yes) q' e9 D5 h4 X
Use libtiff: yes
. ~* @/ T! [) |/ y8 ]/ ]Use libjasper: no5 o& e8 s; B. ~4 y( @' ^
Use libIlmImf: no. ?  Z& l1 g0 Y6 H- l* c

8 ^, C: r# [* Z2 @Video I/O ---------------------. z" X+ s, S) `2 v
Use QuickTime / Mac OS X: no1 f1 U  W# c6 M' @# z4 W
Use xine: no3 L3 M: k. d" W/ e& a
Use ffmpeg: no
! r* |: \3 ~: t( g( Q; e5 eUse dc1394 & raw1394: no
2 N6 z- e2 Q+ [2 E( G, T' s) GUse v4l: yes
" w/ s' s4 T$ T: s/ Y/ E9 ]Use v4l2: no
, s, j8 W+ `# B) v8 z% ^
+ K% I) [. T" {' hWrappers for other languages =============- O! W" Y0 `" l% Q9 K

" F6 I' W, e9 b3 C9 K8 |# B, |SWIG
% P" ?; D/ j' |# |/ C2 O0 _Python yes
4 h! R: `+ `3 X' d6 z6 n' }  h1 T+ Z& [+ W% r: c+ D0 w5 f2 g
Additional build settings ============
8 i' _& k9 v  W5 j
4 m8 z8 H$ B  S4 l; G) e1 oBuild demo apps yes
; J) S) [2 q2 ]. B3 D8 X0 `$ Y6 |& A( S/ G2 E8 `) J$ U: L3 k6 L& T
Now run make ...
( [! B* K5 j8 u6 t$ w2 ^" q' Q/ c# P" a
与网上的不太一样,也许今后工作会因为这个问题而导致无法前进。. E1 I  o" {& t+ d- h+ ~9 P2 E
) M! l+ {2 X( e5 ~+ K
4.还要注意把OPENCV下的头文件,就是包含cv.h和highgui.h这个2个文件的那个目录里边的所有文件(记得是/usr/local/include/opencv),都拷贝到/usr/include下(别问我为什么,反正不拷贝,编译程序时提示找不到那2个头文件)
* i! G! `6 y0 d* L3 `8 @3 k5 V5 i& o
5.编译链接文件的方法:* w  B# G4 `$ D1 |

8 ~3 L' L9 T# M: |- _" y以编辑cvtest.c文件为例子(因为highgui中采用了c++,所以一定要用g++编译才可以)
' ]( r. T+ E0 ^1 m) l6 {( k0 ~: q$ l  a
A. g++ `pkg-config --cflags opencv` -o cvtest cvtest.c `pkg-config --libs opencv`5 W# p: M( \/ I( r! t

' W2 m* A  t' T% @+ ^3 _. M( CB. 编译: g++ `pkg-config --cflags opencv` -c cvtest.c
, g8 M# `4 o8 L% ^5 e) Y5 @, Y( B
0 o3 B0 {8 T+ L链接: g++ `pkg-config --libs opencv` -o cvtest cvtest.o
2 m- ^1 |% S6 b% @
8 N# y$ p' [1 U0 {( m) C注意:g++ 后边那个东西是 ` ,就是ESC下边那个键。

 

感谢楼主!2 j5 k; k- Q, J  e7 A
但是,我按你说的弄完后,那些程序都可以编译,但是在运行时报错:# y& C5 t* J/ o$ z$ U" F6 W) j& v
error:whiling loading shared libraries:libcxcore.so.l:can not open shared librarise:No such file or directory
0 M# U- z' l; C* E0 |# p" j1 b请问是怎么回事?
2# 独步天涯


我也遇到同樣問題,不過我解決了
將/usr/local/lib/  底下有關opencv的lib全部複製到  /usr/lib 底下就可執行了!

 

posted on 2009-07-08 19:05  wqj1212  阅读(2135)  评论(0编辑  收藏  举报

导航