【发布时间】: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 静态东西中对于简单的错误有太多的里程......” - 我的第一个想法:我敢打赌答案会很简单。