2012-03-19 260 views
0

我編譯具有以下標誌和(運行64位操作系統)得到錯誤的程序OpenCV的LDFLAGS:連接問題

g++ -lm -lml -lcvaux -lhighgui -lcv -lcxcore main.o BRIEF.o -o BRIEF_demo 

我收到了一堆未定義的引用:

main.cpp:(.text+0x1f6): undefined reference to `cvInitMatHeader' 

爲主。 cpp :(。text + 0x218):未定義的參考cvInitMatHeader' main.o: In function _Z14drawQuadrangleP9_IplImageiiiiiiii8CvScalari.constprop.77': main.cpp :(.text + 0x2d5):未定義的引用cvLine' main.cpp:(.text+0x333): undefined reference to cvLine' main.cpp :(.text + 0x398):未定義的參考cvLine' main.cpp:(.text+0x3f2): undefined reference to cvLine'

任何人都有一個想法如何繞過這個?

+0

編譯了其中cvInitMatHeader定義的代碼? – 2012-03-19 01:29:05

+0

它在我指定的庫中使用-l選項 – oneiros 2012-03-19 01:29:41

+0

是否構建了庫? – 2012-03-19 01:32:54

回答

1

我想你正在使用最新的OpenCV 2.3.x. cvInitMatHeader()cvLine()實際上在libcxcore.so中定義,我可以看到你包括在內。

我的猜測是,連接的順序是錯誤的,所以您需要調整您的命令是這樣的:

g++ main.cpp BRIEF.cpp -o BRIEF_demo -lm -lml -lcvaux -lhighgui -lcv -lcxcore 
+0

做了這筆交易......謝謝 – oneiros 2012-03-20 02:51:26