我正在使用以下标志编译程序并获取错误(运行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'
任何人都知道如何规避这个?
答案 0 :(得分:1)
我想您使用的是最新的OpenCV 2.3.x. cvInitMatHeader()
和cvLine()
实际上是在libcxcore.so
中定义的,我可以看到你包括在内。
我的猜测是链接的顺序是错误的,所以你需要将命令调整为:
g++ main.cpp BRIEF.cpp -o BRIEF_demo -lm -lml -lcvaux -lhighgui -lcv -lcxcore