我正在尝试使用由几个源文件组成的g ++构建应用程序,并且还使用OpenCV 3.1.0。
CMD命令是:
g++ -o home_surveillance -static -std=c++11 -m64 -IC:\Tools\OpenCV\opencv\build\include -LC:\Tools\OpenCV\opencv\build\x64\vc14\lib -lopencv_world310 configuration_manager.cpp events.cpp image_processor.cpp main.cpp response_module.cpp scheduler.cpp
产生的错误是:
C:/Program Files/mingw-w64/x86_64-6.2.0-posix-seh-rt_v5-rev1/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/6.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -lopencv_world310
collect2.exe: error: ld returned 1 exit status
我一直在尝试各种各样的事情,并在几天内寻找答案。我应该注意应用程序在Visual Studio 2015中正确构建。我尝试使用带有-c选项的g ++编译源文件,它们似乎都可以正常编译。只是链接阶段产生错误。
我尝试过的事情:
几乎所有指定命令的组合。 (修改选项的顺序,-lopencv_world310.a,-lopencv_world310.lib,-lopencv_world310,-l“full_path”+“opencv_world310”等。)
检查所有路径和文件名是否正确。
重新安装mingw以确保我使用的是mingw-w64,因为这是一个64位应用程序。
以管理员身份运行CMD可能CMD无法访问使用-L选项指定的路径。
谷歌搜索并阅读我能找到的每一篇文章。 (大多数关于“ld.exe找不到”library_name“的帖子都是某人使用”library_name“.a或”library_name“.lib作为-l选项的输入的结果。
阅读有关使用GCC / g ++的mingw文档,以确保我没有遗漏任何明显的内容。
向Bjarne Stroustrup祈祷。
涉及奔腾2的仪式牺牲。