我正在编译一个带有以下标志的程序,并得到错误(运行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 tocvLine的未定义引用main.cpp:(.text+0x398):对cvLine' main.cpp:(.text+0x3f2): undefined reference tocvLine的未定义引用
有谁知道如何规避这一点吗?
发布于 2012-03-19 20:45:09
我想您使用的是最新的OpenCV 2.3.x。cvInitMatHeader()和cvLine()实际上是在libcxcore.so中定义的,我可以看出您正在将其包括在内。
我的猜测是链接的顺序是错误的,因此您需要将您的命令调整为如下所示:
g++ main.cpp BRIEF.cpp -o BRIEF_demo -lm -lml -lcvaux -lhighgui -lcv -lcxcorehttps://stackoverflow.com/questions/9763920
复制相似问题