【问题标题】:Linking opencv ".a" libraries with mingw and Qt 5.0将 opencv ".a" 库与 mingw 和 Qt 5.0 链接
【发布时间】:2013-02-01 14:47:21
【问题描述】:

这个太难了!请不要把这个误认为是一个新手问题;)对于简单的错误,我在这个 OpenCV + MinGW 静态内容中的里程太多了....

环境: 一种。使用 MinGW 构建的 Qt 5.0.1(从 qt-project 下载的标准开源代码) - 所以一切都使用相同的 MinGW 环境构建。 湾。使用 CMake 我设置了最小构建(使用与 Qt 相同的 g++/gcc)并关闭了 SHARED_LIBRARIES。 C。生成 cmake + mingw32-make + mingw32-make 安装工作正常。

到目前为止,一切看起来都很顺利......

现在当我添加时:

win32-g++:INCLUDEPATH += D:/Dev/opencv/build/install/include
win32-g++:LIBS += -LD:/Dev/opencv/build/install/lib
win32-g++:LIBS += -static
win32-g++:LIBS += -llibopencv_core243d
win32-g++:LIBS += -llibopencv_imgproc243d
win32-g++:LIBS += -llibopencv_highgui243d

(也没有添加“win32-g++”..)

我收到d:/dev/qt/qt5.0.1/tools/mingw/bin/../lib/gcc/i686-w64-mingw32/4.7.2/../../../../i686-w64-mingw32/bin/ld.exe: cannot find -llibopencv_highgui243d

...
...

现在.. 我确实在正确的目录中有 libopencv_highgui243d.a,但是 ld.exe 链接器忽略了 lib 之外的任何内容!这应该是一个 MS 库(我想首先避免!!!) - 我什至尝试将 .a 文件重命名为 .lib 导致链接器考虑文件,但显示许多“未引用”错误...

那么谁该受责备?链接器?制作?鸣?吗? ....

我尝试了许多命令行/标志选项但没有成功..

【问题讨论】:

  • 专家先生您好,您是否尝试过不使用初始lib?示例:LIBS += -lopencv_core243d
  • 我过去曾成功地将文件的完整路径和完整的文件名传递给LIBS(包括文件的扩展名。例如:LIBS += D:/blah/blah/libopencv_highgui243d.a
  • 嘿 Karlphillip.. 这很奇怪,但你是真的!这很奇怪,因为文件名确实是 libopencv_core243d.a (带有lib)所以到底谁想过削减文件名的开头???? !!!多么愚蠢的命令/约定... ~~~~ 这让我很生气!但感谢 X100000!
  • “我在这个 OpenCV + MinGW 静态东西中对于简单的错误有太多的里程......” - 我的第一个想法:我敢打赌答案会很简单。

标签: qt opencv static mingw .a


【解决方案1】:

您应该将这些库称为:

LIBS += -lopencv_core243d
LIBS += -lopencv_imgproc243d
LIBS += -lopencv_highgui243d

因为-l 已经在名称的开头插入了lib

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-30
    • 1970-01-01
    相关资源
    最近更新 更多