1. 程式人生 > >0420 測試記錄 gcc 編譯時 庫檔案 標頭檔案問題及其解決方案

0420 測試記錄 gcc 編譯時 庫檔案 標頭檔案問題及其解決方案


[[email protected] c]# g++ -L/usr/local/lib -I/usr/local/includes -o morphology morphology.c
morphology.c:1:16: 錯誤:cv.h:沒有那個檔案或目錄
morphology.c:2:21: 錯誤:highgui.h:沒有那個檔案或目錄
morphology.c:6: 錯誤:expected constructor, destructor, or type conversion before ‘*’ token
morphology.c:7: 錯誤:expected constructor, destructor, or type conversion before ‘*’ token
morphology.c:9: 錯誤:expected constructor, destructor, or type conversion before ‘*’ token
morphology.c:10: 錯誤:‘CV_SHAPE_RECT’ 在此作用域中尚未宣告
morphology.c: In function ‘void OpenClose(int)’:
morphology.c:22: 錯誤:‘element’ 在此作用域中尚未宣告
morphology.c:22: 錯誤:‘cvCreateStructuringElementEx’ 在此作用域中尚未宣告
morphology.c:25: 錯誤:‘src’ 在此作用域中尚未宣告
morphology.c:25: 錯誤:‘dst’ 在此作用域中尚未宣告
morphology.c:25: 錯誤:‘cvErode’ 在此作用域中尚未宣告
morphology.c:26: 錯誤:‘cvDilate’ 在此作用域中尚未宣告
morphology.c:30: 錯誤:‘src’ 在此作用域中尚未宣告
morphology.c:30: 錯誤:‘dst’ 在此作用域中尚未宣告
morphology.c:30: 錯誤:‘cvDilate’ 在此作用域中尚未宣告
morphology.c:31: 錯誤:‘cvErode’ 在此作用域中尚未宣告
morphology.c:33: 錯誤:‘cvReleaseStructuringElement’ 在此作用域中尚未宣告
morphology.c:34: 錯誤:‘dst’ 在此作用域中尚未宣告
morphology.c:34: 錯誤:‘cvShowImage’ 在此作用域中尚未宣告
morphology.c: In function ‘void ErodeDilate(int)’:
morphology.c:42: 錯誤:‘element’ 在此作用域中尚未宣告
morphology.c:42: 錯誤:‘cvCreateStructuringElementEx’ 在此作用域中尚未宣告
morphology.c:45: 錯誤:‘src’ 在此作用域中尚未宣告
morphology.c:45: 錯誤:‘dst’ 在此作用域中尚未宣告
morphology.c:45: 錯誤:‘cvErode’ 在此作用域中尚未宣告
morphology.c:49: 錯誤:‘src’ 在此作用域中尚未宣告
morphology.c:49: 錯誤:‘dst’ 在此作用域中尚未宣告
morphology.c:49: 錯誤:‘cvDilate’ 在此作用域中尚未宣告
morphology.c:51: 錯誤:‘cvReleaseStructuringElement’ 在此作用域中尚未宣告
morphology.c:52: 錯誤:‘dst’ 在此作用域中尚未宣告
morphology.c:52: 錯誤:‘cvShowImage’ 在此作用域中尚未宣告
morphology.c: In function ‘int main(int, char**)’:
morphology.c:59: 錯誤:‘src’ 在此作用域中尚未宣告
morphology.c:59: 錯誤:‘cvLoadImage’ 在此作用域中尚未宣告
morphology.c:69: 錯誤:‘dst’ 在此作用域中尚未宣告
morphology.c:69: 錯誤:‘src’ 在此作用域中尚未宣告
morphology.c:69: 錯誤:‘cvCloneImage’ 在此作用域中尚未宣告
morphology.c:72: 錯誤:‘cvNamedWindow’ 在此作用域中尚未宣告
morphology.c:76: 錯誤:‘cvCreateTrackbar’ 在此作用域中尚未宣告
morphology.c:85: 錯誤:‘cvWaitKey’ 在此作用域中尚未宣告
morphology.c:90: 錯誤:‘CV_SHAPE_ELLIPSE’ 在此作用域中尚未宣告
morphology.c:92: 錯誤:‘CV_SHAPE_RECT’ 在此作用域中尚未宣告
morphology.c:94: 錯誤:‘CV_SHAPE_CROSS’ 在此作用域中尚未宣告
morphology.c:100: 錯誤:‘cvReleaseImage’ 在此作用域中尚未宣告
morphology.c:104: 錯誤:‘cvDestroyWindow’ 在此作用域中尚未宣告
[
[email protected]
c]# g++ -L/usr/local/lib -I/usr/local/include/opencv -o morphology morphology.c
/tmp/cchWFzpS.o: In function `ErodeDilate(int)':
morphology.c:(.text+0x66): undefined reference to `cvCreateStructuringElementEx'
morphology.c:(.text+0x9a): undefined reference to `cvErode'
morphology.c:(.text+0xc5): undefined reference to `cvDilate'
morphology.c:(.text+0xd1): undefined reference to `cvReleaseStructuringElement'
morphology.c:(.text+0xe6): undefined reference to `cvShowImage'
/tmp/cchWFzpS.o: In function `OpenClose(int)':
morphology.c:(.text+0x156): undefined reference to `cvCreateStructuringElementEx'
morphology.c:(.text+0x18a): undefined reference to `cvErode'
morphology.c:(.text+0x1b3): undefined reference to `cvDilate'
morphology.c:(.text+0x1de): undefined reference to `cvDilate'
morphology.c:(.text+0x207): undefined reference to `cvErode'
morphology.c:(.text+0x213): undefined reference to `cvReleaseStructuringElement'
morphology.c:(.text+0x228): undefined reference to `cvShowImage'
/tmp/cchWFzpS.o: In function `main':
morphology.c:(.text+0x27a): undefined reference to `cvLoadImage'
morphology.c:(.text+0x2b2): undefined reference to `cvCloneImage'
morphology.c:(.text+0x2cb): undefined reference to `cvNamedWindow'
morphology.c:(.text+0x2df): undefined reference to `cvNamedWindow'
morphology.c:(.text+0x325): undefined reference to `cvCreateTrackbar'
morphology.c:(.text+0x357): undefined reference to `cvCreateTrackbar'
morphology.c:(.text+0x37f): undefined reference to `cvWaitKey'
morphology.c:(.text+0x41d): undefined reference to `cvReleaseImage'
morphology.c:(.text+0x429): undefined reference to `cvReleaseImage'
morphology.c:(.text+0x435): undefined reference to `cvDestroyWindow'
morphology.c:(.text+0x441): undefined reference to `cvDestroyWindow'
collect2: ld 返回 1
[
[email protected]
c]# g++ `pkg-config opencv --libs --cflags opencv` drawing.c -o drawing -L/usr/local/lib -I/usr/local/include/opencv
Package opencv was not found in the pkg-config search path.
Perhaps you should add the directory containing `opencv.pc'
to the PKG_CONFIG_PATH environment variable
No package 'opencv' found
Package opencv was not found in the pkg-config search path.
Perhaps you should add the directory containing `opencv.pc'
to the PKG_CONFIG_PATH environment variable
No package 'opencv' found
/tmp/ccY9gGMv.o: In function `main':
drawing.c:(.text+0x101): undefined reference to `cvCreateImage'
drawing.c:(.text+0x11b): undefined reference to `cvNamedWindow'
drawing.c:(.text+0x129): undefined reference to `cvSetZero'
drawing.c:(.text+0x13f): undefined reference to `cvShowImage'
drawing.c:(.text+0x370): undefined reference to `cvLine'
drawing.c:(.text+0x386): undefined reference to `cvShowImage'
drawing.c:(.text+0x392): undefined reference to `cvWaitKey'
drawing.c:(.text+0x587): undefined reference to `cvRectangle'
drawing.c:(.text+0x59d): undefined reference to `cvShowImage'
drawing.c:(.text+0x5a9): undefined reference to `cvWaitKey'
drawing.c:(.text+0x855): undefined reference to `cvEllipse'
drawing.c:(.text+0x86b): undefined reference to `cvShowImage'
drawing.c:(.text+0x877): undefined reference to `cvWaitKey'
drawing.c:(.text+0xc41): undefined reference to `cvPolyLine'
drawing.c:(.text+0xc57): undefined reference to `cvShowImage'
drawing.c:(.text+0xc63): undefined reference to `cvWaitKey'
drawing.c:(.text+0xfd3): undefined reference to `cvFillPoly'
drawing.c:(.text+0xfe9): undefined reference to `cvShowImage'
drawing.c:(.text+0xff5): undefined reference to `cvWaitKey'
drawing.c:(.text+0x11b7): undefined reference to `cvCircle'
drawing.c:(.text+0x11cd): undefined reference to `cvShowImage'
drawing.c:(.text+0x11d9): undefined reference to `cvWaitKey'
drawing.c:(.text+0x1449): undefined reference to `cvInitFont'
drawing.c:(.text+0x14d6): undefined reference to `cvPutText'
drawing.c:(.text+0x14ec): undefined reference to `cvShowImage'
drawing.c:(.text+0x14f8): undefined reference to `cvWaitKey'
drawing.c:(.text+0x1545): undefined reference to `cvInitFont'
drawing.c:(.text+0x156f): undefined reference to `cvGetTextSize'
drawing.c:(.text+0x15b5): undefined reference to `cvCloneImage'
drawing.c:(.text+0x16ce): undefined reference to `cvPutText'
drawing.c:(.text+0x16e4): undefined reference to `cvShowImage'
drawing.c:(.text+0x16f0): undefined reference to `cvWaitKey'
drawing.c:(.text+0x170d): undefined reference to `cvWaitKey'
drawing.c:(.text+0x171b): undefined reference to `cvReleaseImage'
drawing.c:(.text+0x1729): undefined reference to `cvReleaseImage'
drawing.c:(.text+0x1735): undefined reference to `cvDestroyWindow'
/tmp/ccY9gGMv.o: In function `cvSubS':
drawing.c:(.text.cvSubS[cvSubS]+0x89): undefined reference to `cvAddS'
collect2: ld 返回 1

[
[email protected]
c]# export PKG_CONFIG_PATH=$PKG_CONFGI_PATH:/usr/local/lib/pkgconfig
[[email protected] c]# g++ `pkg-config opencv --libs --cflags opencv` drawing.c -o drawing -I/usr/local/include/opencv -L
g++: ‘-L’缺少實參

[[email protected] c]# g++ `pkg-config opencv --libs --cflags opencv` drawing.c -o drawing -I/usr/local/include/opencv
[[email protected] c]# ls
agaricus-lepiota.data  delaunay.c      fruits.jpg               Makefile      pic3.png
airplane.jpg           demhist.c       houghlines.c             Makefile.am   pic4.png
baboon.jpg             dft.c           image.cpp                makefile.gnu  pic5.png
blobtrack.cpp          distrans.c      inpaint.cpp              Makefile.in   pic6.png
build_all.sh           drawing         kalman.c                 makefile.ms   pyramid_segmentation.c
camshiftdemo.c         drawing.c       kmeans.c                 minarea.c     squares.c
contours.c             edge.c          laplace.c                morphology.c  stuff.jpg
convert_cascade.c      facedetect.c    lena.jpg                 motempl.c     watershed.cpp
convexhull.c           facedetect.cmd  letter_recog.cpp         mushroom.cpp
cvsample.dsp           ffilldemo.c     letter-recognition.data  pic1.png
cvsample.vcproj        fitellipse.c    lkdemo.c                 pic2.png
[[email protected] c]# ./drawing
./drawing: error while loading shared libraries: libcxcore.so.1: cannot open shared object file: No such file or directory
[[email protected] c]# export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
[[email protected] c]# ./drawing


OK


重新測試與於原因分析
[[email protected] c]$ echo $PKG_CONFIG_PATH
[[email protected] c]$ g++ `pkg-config opencv --libs --cflags opencv` drawing.c -o drawing
Package opencv was not found in the pkg-config search path.
Perhaps you should add the directory containing `opencv.pc'
to the PKG_CONFIG_PATH environment variable
No package 'opencv' found
Package opencv was not found in the pkg-config search path.
Perhaps you should add the directory containing `opencv.pc'
to the PKG_CONFIG_PATH environment variable
No package 'opencv' found
drawing.c:6:16: 錯誤:cv.h:沒有那個檔案或目錄
drawing.c:7:21: 錯誤:highgui.h:沒有那個檔案或目錄
drawing.c:16: 錯誤:‘CvScalar’ 沒有命名一個型別
drawing.c: In function ‘int main(int, char**)’:
drawing.c:24: 錯誤:‘CV_AA’ 在此作用域中尚未宣告
drawing.c:26: 錯誤:‘CvPoint’ 在此作用域中尚未宣告
drawing.c:26: 錯誤:expected `;' before ‘pt1’
drawing.c:28: 錯誤:‘CvSize’ 在此作用域中尚未宣告
drawing.c:28: 錯誤:expected `;' before ‘sz’
drawing.c:29: 錯誤:expected `;' before ‘ptt’
drawing.c:30: 錯誤:‘pt’ 在此作用域中尚未宣告
drawing.c:32: 錯誤:‘CvFont’ 在此作用域中尚未宣告
drawing.c:32: 錯誤:expected `;' before ‘font’
drawing.c:33: 錯誤:‘CvRNG’ 在此作用域中尚未宣告
drawing.c:33: 錯誤:expected `;' before ‘rng’
drawing.c:36: 錯誤:expected `;' before ‘text_size’
drawing.c:39: 錯誤:‘IplImage’ 在此作用域中尚未宣告
drawing.c:39: 錯誤:‘image’ 在此作用域中尚未宣告
drawing.c:39: 錯誤:‘cvSize’ 在此作用域中尚未宣告
drawing.c:39: 錯誤:‘cvCreateImage’ 在此作用域中尚未宣告
drawing.c:40: 錯誤:‘image2’ 在此作用域中尚未宣告
drawing.c:43: 錯誤:‘cvNamedWindow’ 在此作用域中尚未宣告
drawing.c:44: 錯誤:‘cvZero’ 在此作用域中尚未宣告
drawing.c:45: 錯誤:‘cvShowImage’ 在此作用域中尚未宣告
drawing.c:47: 錯誤:‘rng’ 在此作用域中尚未宣告
drawing.c:47: 錯誤:‘cvRNG’ 在此作用域中尚未宣告
drawing.c:48: 錯誤:‘ptt’ 在此作用域中尚未宣告
drawing.c:56: 錯誤:‘pt1’ 在此作用域中尚未宣告
drawing.c:56: 錯誤:‘cvRandInt’ 在此作用域中尚未宣告
drawing.c:58: 錯誤:‘pt2’ 在此作用域中尚未宣告
drawing.c:61: 錯誤:‘random_color’ 在此作用域中尚未宣告
drawing.c:61: 錯誤:‘cvLine’ 在此作用域中尚未宣告
drawing.c:63: 錯誤:‘cvWaitKey’ 在此作用域中尚未宣告
drawing.c:68: 錯誤:‘pt1’ 在此作用域中尚未宣告
drawing.c:68: 錯誤:‘cvRandInt’ 在此作用域中尚未宣告
drawing.c:70: 錯誤:‘pt2’ 在此作用域中尚未宣告
drawing.c:73: 錯誤:‘random_color’ 在此作用域中尚未宣告
drawing.c:73: 錯誤:‘cvRectangle’ 在此作用域中尚未宣告
drawing.c:75: 錯誤:‘cvWaitKey’ 在此作用域中尚未宣告
drawing.c:80: 錯誤:‘pt1’ 在此作用域中尚未宣告
drawing.c:80: 錯誤:‘cvRandInt’ 在此作用域中尚未宣告
drawing.c:82: 錯誤:‘sz’ 在此作用域中尚未宣告
drawing.c:87: 錯誤:‘random_color’ 在此作用域中尚未宣告
drawing.c:87: 錯誤:‘cvEllipse’ 在此作用域中尚未宣告
drawing.c:89: 錯誤:‘cvWaitKey’ 在此作用域中尚未宣告
drawing.c:94: 錯誤:‘cvRandInt’ 在此作用域中尚未宣告
drawing.c:107: 錯誤:‘random_color’ 在此作用域中尚未宣告
drawing.c:107: 錯誤:‘cvPolyLine’ 在此作用域中尚未宣告
drawing.c:109: 錯誤:‘cvWaitKey’ 在此作用域中尚未宣告
drawing.c:114: 錯誤:‘cvRandInt’ 在此作用域中尚未宣告
drawing.c:127: 錯誤:‘random_color’ 在此作用域中尚未宣告
drawing.c:127: 錯誤:‘cvFillPoly’ 在此作用域中尚未宣告
drawing.c:129: 錯誤:‘cvWaitKey’ 在此作用域中尚未宣告
drawing.c:134: 錯誤:‘pt1’ 在此作用域中尚未宣告
drawing.c:134: 錯誤:‘cvRandInt’ 在此作用域中尚未宣告
drawing.c:137: 錯誤:‘random_color’ 在此作用域中尚未宣告
drawing.c:138: 錯誤:‘cvCircle’ 在此作用域中尚未宣告
drawing.c:140: 錯誤:‘cvWaitKey’ 在此作用域中尚未宣告
drawing.c:145: 錯誤:‘pt1’ 在此作用域中尚未宣告
drawing.c:145: 錯誤:‘cvRandInt’ 在此作用域中尚未宣告
drawing.c:148: 錯誤:‘font’ 在此作用域中尚未宣告
drawing.c:150: 錯誤:‘cvRound’ 在此作用域中尚未宣告
drawing.c:150: 錯誤:‘cvInitFont’ 在此作用域中尚未宣告
drawing.c:152: 錯誤:‘random_color’ 在此作用域中尚未宣告
drawing.c:152: 錯誤:‘cvPutText’ 在此作用域中尚未宣告
drawing.c:154: 錯誤:‘cvWaitKey’ 在此作用域中尚未宣告
drawing.c:157: 錯誤:‘font’ 在此作用域中尚未宣告
drawing.c:157: 錯誤:‘CV_FONT_HERSHEY_COMPLEX’ 在此作用域中尚未宣告
drawing.c:157: 錯誤:‘cvInitFont’ 在此作用域中尚未宣告
drawing.c:159: 錯誤:‘text_size’ 在此作用域中尚未宣告
drawing.c:159: 錯誤:‘cvGetTextSize’ 在此作用域中尚未宣告
drawing.c:161: 錯誤:‘pt1’ 在此作用域中尚未宣告
drawing.c:163: 錯誤:‘cvCloneImage’ 在此作用域中尚未宣告
drawing.c:167: 錯誤:‘cvScalarAll’ 在此作用域中尚未宣告
drawing.c:167: 錯誤:‘cvSubS’ 在此作用域中尚未宣告
drawing.c:168: 錯誤:‘CV_RGB’ 在此作用域中尚未宣告
drawing.c:168: 錯誤:‘cvPutText’ 在此作用域中尚未宣告
drawing.c:170: 錯誤:‘cvWaitKey’ 在此作用域中尚未宣告
drawing.c:174: 錯誤:‘cvWaitKey’ 在此作用域中尚未宣告
drawing.c:175: 錯誤:‘cvReleaseImage’ 在此作用域中尚未宣告
drawing.c:177: 錯誤:‘cvDestroyWindow’ 在此作用域中尚未宣告
[[email protected] c]$

下面使用 -I/usr/local/include/opencv     (這裡引數是i的大寫字母I,而不是L的小寫字母I)

[[email protected] c]$ echo $PKG_CONFIG_PATH

[[email protected] c]$ echo $LD_LIBRARY_PATH

[[email protected] c]$ g++ `pkg-config opencv --libs --cflags opencv` drawing.c -o drawing -I/usr/local/include/opencv
Package opencv was not found in the pkg-config search path.
Perhaps you should add the directory containing `opencv.pc'
to the PKG_CONFIG_PATH environment variable
No package 'opencv' found
Package opencv was not found in the pkg-config search path.
Perhaps you should add the directory containing `opencv.pc'
to the PKG_CONFIG_PATH environment variable
No package 'opencv' found
/tmp/ccCKA3G6.o: In function `main':
drawing.c:(.text+0x101): undefined reference to `cvCreateImage'
drawing.c:(.text+0x11b): undefined reference to `cvNamedWindow'
drawing.c:(.text+0x129): undefined reference to `cvSetZero'
drawing.c:(.text+0x13f): undefined reference to `cvShowImage'
drawing.c:(.text+0x370): undefined reference to `cvLine'
drawing.c:(.text+0x386): undefined reference to `cvShowImage'
drawing.c:(.text+0x392): undefined reference to `cvWaitKey'
drawing.c:(.text+0x587): undefined reference to `cvRectangle'
drawing.c:(.text+0x59d): undefined reference to `cvShowImage'
drawing.c:(.text+0x5a9): undefined reference to `cvWaitKey'
drawing.c:(.text+0x855): undefined reference to `cvEllipse'
drawing.c:(.text+0x86b): undefined reference to `cvShowImage'
drawing.c:(.text+0x877): undefined reference to `cvWaitKey'
drawing.c:(.text+0xc41): undefined reference to `cvPolyLine'
drawing.c:(.text+0xc57): undefined reference to `cvShowImage'
drawing.c:(.text+0xc63): undefined reference to `cvWaitKey'
drawing.c:(.text+0xfd3): undefined reference to `cvFillPoly'
drawing.c:(.text+0xfe9): undefined reference to `cvShowImage'
drawing.c:(.text+0xff5): undefined reference to `cvWaitKey'
drawing.c:(.text+0x11b7): undefined reference to `cvCircle'
drawing.c:(.text+0x11cd): undefined reference to `cvShowImage'
drawing.c:(.text+0x11d9): undefined reference to `cvWaitKey'
drawing.c:(.text+0x1449): undefined reference to `cvInitFont'
drawing.c:(.text+0x14d6): undefined reference to `cvPutText'
drawing.c:(.text+0x14ec): undefined reference to `cvShowImage'
drawing.c:(.text+0x14f8): undefined reference to `cvWaitKey'
drawing.c:(.text+0x1545): undefined reference to `cvInitFont'
drawing.c:(.text+0x156f): undefined reference to `cvGetTextSize'
drawing.c:(.text+0x15b5): undefined reference to `cvCloneImage'
drawing.c:(.text+0x16ce): undefined reference to `cvPutText'
drawing.c:(.text+0x16e4): undefined reference to `cvShowImage'
drawing.c:(.text+0x16f0): undefined reference to `cvWaitKey'
drawing.c:(.text+0x170d): undefined reference to `cvWaitKey'
drawing.c:(.text+0x171b): undefined reference to `cvReleaseImage'
drawing.c:(.text+0x1729): undefined reference to `cvReleaseImage'
drawing.c:(.text+0x1735): undefined reference to `cvDestroyWindow'
/tmp/ccCKA3G6.o: In function `cvSubS':
drawing.c:(.text.cvSubS[cvSubS]+0x89): undefined reference to `cvAddS'
collect2: ld 返回 1
[[email protected] c]$ export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
[[email protected] c]$ g++ `pkg-config opencv --libs --cflags opencv` drawing.c -o drawing -I/usr/local/include/opencv     (這裡引數是i的大寫字母I,而不是L的小寫字母I)
[[email protected] c]$

編譯過程中 PKG_CONIG_PATH引數主要用來提供include的搜尋路徑

上面指令中-I/usr/local/include/opencv 沒用解決實際問題,沒設定PKG_CONIG_PATH引數時候不成功。
可以看出
-I/usr/local/include/opencv 指定了標頭檔案位置,但並沒有然編譯器遭到起定義位置。
下面去掉他,看看





[[email protected] c]$ echo $PKG_CONFIG_PATH
:/usr/local/lib/pkgconfig

[[email protected] c]$ g++ `pkg-config opencv --libs --cflags opencv` drawing.c -o drawing
[[email protected] c]$

可見這裡,可見-I/usr/local/include/opencv 其實根本沒用 ,全由PKG_CONIG_PATH引數進行指定。

下面執行程式:
[[email protected] c]$ ./drawing
./drawing: error while loading shared libraries: libcxcore.so.1: cannot open shared object file: No such file or directory
[[email protected] c]$

可見還需要指定動態連結庫

[[email protected] c]$ echo $LD_LIBRARY_PATH

[[email protected] c]$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
[[email protected] c]$ ./drawing

成功

總結:
1、編譯時使用PKG_CONIG_PATH變數進行標頭檔案路徑指定  
             參考:http://blog.csdn.net/bloghome/archive/2008/04/21/2312873.aspx
2、執行時使用LD_LIBRARY_PATH變數進行動態連結庫指定


原始指令= g++ `pkg-config opencv --libs --cflags opencv` read_and_show.c -o drawing
實際指令= g++ -I/usr/local/include/opencv -L/usr/local/lib -lcxcore -lcv -lhighgui -lcvaux -lml read_and_show.c -o drawing

相關推薦

0420 測試記錄 gcc 編譯 檔案 檔案問題及其解決方案

[[email protected] c]# g++ -L/usr/local/lib -I/usr/local/includes -o morphology morphology.cmorphology.c:1:16: 錯誤:cv.h:沒有那個檔案或目錄morph

GCC編譯選項-包含的檔案

  許多情況下,標頭檔案和原始檔會單獨存放在不同的目錄中。 可以直接在.c檔案中利用#include“/path/file.h", 通過指定標頭檔案的路徑(可以是絕對路徑,也可以是相對路徑)來包含標頭檔案. 但這明顯降低了程式的可移植性. 在別的系統環境下編譯可能會出現問題

如何找出g++編譯的系統檔案的搜尋路徑

有時候,我們需要瀏覽系統標頭檔案的內容從而知道該標頭檔案裡都有哪些函式以及型別,但如何找到這些系統標頭檔案所在的檔案目錄呢?可以通過寫一個簡單的c++程式,來觀察g++是怎麼查詢系統標頭檔案的。 譬如下面的一段程式: #include<nonexist.h>

linux 編譯指定檔案的路徑問題

1. 為什麼會出現undefined reference to 'xxxxx'錯誤? 首先這是連結錯誤,不是編譯錯誤,也就是說如果只有這個錯誤,說明你的程式原始碼本身沒有問題,是你用編譯器編譯時引數用得不對,你沒有指定連結程式要用到得庫,比如你的程式裡用到了一些數學函式,那麼你就要在編譯引數裡指定程式要連結

如何獲得gcc/g++編譯巨集定義和檔案搜尋目錄的方法說明

/* co-gcc.lnt: This is the seed file for configuring Lint for use with GCC versions 2.95.3 and later. Like all compiler options files thi

一個C++引用檔案編譯陷阱

#### 寫在前面 老胡最近在工作中,有個場景需要使用一個第三方庫,引用標頭檔案,連結庫,編譯執行,一切都很正常,但是接下來就遇到了一個很詭異的問題,呼叫該庫的中的一個物件方法為物件修改屬性的時候,會影響到物件的另外一個屬性,當時百思不得其解,直呼靈異事件。 但後面靜下心來細細看了一下程式碼和各種配置,發現了

Qt Creator 配置第三方檔案

引入第三方庫 opencv 首先安裝opencv,前面部落格opencv已經介紹如何安裝了 D:\opencv\build\x64\vc14\lib\opencv_world310.lib    動態庫(存放動態連結庫的地址) D:\opencv\build\include

CCS編譯出錯:缺少檔案解決辦法

問題: "../Source/DSP2833x_SysCtrl.c", line 16: fatal error #5: could not open source file "DSP2833x_Device.h"      ,在工程目錄下已經在include下包括所有標頭

QT增加連結檔案搜尋目錄(相對目錄)

     QT開發的時候,需要增加連結的動態庫或者靜態庫,或者搜尋的標頭檔案。正常情況下,使用相對目錄是最好的。下面是常用的方法:     1 增加庫依賴。如下,OUT_PWD表示QT編譯後的輸出目錄。比如Debug或者Release目錄。後續釋出的時候,把so庫或者靜態庫放

關於編譯“bits/stdc++.h”檔案

首先講講“bits/stdc++.h”這個標頭檔案,一般都叫做萬能標頭檔案,比賽的時候用它基本上就不用寫其他的標頭檔案了,大部分的線上判題都支援。G++ 4.4以上就支援這個標頭檔案了 最近遇到的問題是在macos系統下,這段時間蘋果釋出了macOS High

C++ STL/C檔案函式

轉載@Memset  轉載@Jason333 目錄 List                               操作函式 優先佇列 Vector 1、結構   vector模塑出一個動態陣列,因此,它本身是“將元素置於動態陣列中加

Linux中的靜態、共享檔案及makefile檔案舉例

2、在bill.c檔案中引入標頭檔案,寫該函式的實現; ***@ubuntu:~/codeC/1201B$ more bill.c #include "bill.h" int bill(int a[], int n) {     int i,max = a[i];     for( i = 0; i <

《CMake實踐》筆記三:構建靜態與動態 及 如何使用外部共享檔案

五、靜態庫與動態庫構建 讀者雲,太能羅唆了,一個Hello World就折騰了兩個大節。OK,從本節開始,我們不再折騰Hello World了,我們來折騰Hello World的共享庫。 本節的任務: 1、建立一個靜態庫和動態庫,提供HelloFunc函式供

《CMake實踐》筆記三:構建靜態(.a) 與 動態(.so) 及 如何使用外部共享檔案

五、靜態庫與動態庫構建 讀者雲,太能羅唆了,一個Hello World就折騰了兩個大節。OK,從本節開始,我們不再折騰Hello World了,我們來折騰Hello World的共享庫。 本節的任務: 1、建立一個靜態庫和動態庫,提供HelloFunc函式供其他程式程式設計使用,Hell

【轉】《CMake實踐》筆記三:構建靜態(.a) 與 動態(.so) 及 如何使用外部共享檔案

五、靜態庫與動態庫構建讀者雲,太能羅唆了,一個Hello World就折騰了兩個大節。OK,從本節開始,我們不再折騰Hello World了,我們來折騰Hello World的共享庫。本節的任務:1、建立一個靜態庫和動態庫,提供HelloFunc函式供其他程式程式設計使用,H

如何將其他專案的.dll和.lib檔案第三方以及檔案加入到Visual Studio的專案中

首先說明,儘量慎重依賴於第三方庫,除非自己很熟悉或自己能力強,對第三方庫知道怎麼使用,否則很容易造成一些意想不到的錯誤,除錯這些錯誤可能還不如自己寫檔案解決來的更快一些。 VS中提供兩種不同的專案配置方式: 第一種是配置自己電腦的VS屬性,在“Solution Explor

VisualStudio中新增LIb檔案、巨集等常用配製

在VS工程中,新增c/c++工程中外部標頭檔案及庫的基本步驟:     1、新增工程的標頭檔案目錄:工程---屬性---配置屬性---c/c++---常規---附加包含目錄:加上標頭檔案存放目錄。     2、新增檔案引用的lib靜態庫路徑:工程---屬性---配置屬

【CTF雜項】常見檔案檔案檔案尾格式總結及各類檔案頭

檔案標頭檔案尾總結 JPEG (jpg),   檔案頭:FFD8FF                        檔案尾:FF D9PNG (png),    檔案頭:89504E47                      檔案尾:AE 42 60 82GIF (gif),   檔案頭:4749463

檔案檔案尾總結

本文轉載自:https://www.cnblogs.com/lwy-kitty/p/3928317.html JPEG (jpg),                       &nbs

thinkphp 共用html檔案 檔案 extend的使用

通常在開發後臺過程中,我們需要使用一個公共的頭部檔案,一般頭部內容包含使用者名稱,退出,欄目名稱,公司,公共CSS,JS等資訊。不可能每個靜態檔案都去重新複製一遍程式碼,那如何讓其他靜態頁面繼承公共檔案呢? 第一步:在View檔案裡新建Public檔案 建立base.html base