OpenCV LDFlags链接问题

时间:2012-03-19 01:24:09

标签: c++ c linux opencv

我正在使用以下标志编译程序并获取错误(运行64位操作系统):

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

我得到了一堆未定义的引用:

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

main.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'

任何人都知道如何规避这个?

1 个答案:

答案 0 :(得分:1)

我想您使用的是最新的OpenCV 2.3.x. cvInitMatHeader()cvLine()实际上是在libcxcore.so中定义的,我可以看到你包括在内。

我的猜测是链接的顺序是错误的,所以你需要将命令调整为:

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