我正在尝试在Visual Studio中完美运行的CLion中运行代码。该程序具有外部依赖性-OpenCV 4.2.0库。我之前从未与CMake合作过,所以我搜索了有关如何将库链接到项目的解决方案。我正在使用MingW-w64作为我的环境。 CMake的构建没有任何警告,但是在编译项目时会抛出错误“未定义的引用(将OpenCV的任何功能放在此处)。我花了5个小时试图了解问题所在,在论坛上寻找解决方案,当然,在这里,但是我没有找到问题的根源,我创建了另一个项目只是为了简化调试。两个项目使用相同的CMakeLists.txt文件都会引发相同的错误。 这是我的CMakeList.txt:
project(SOMETHINF)
set(CMAKE_CXX_STANDARD 20)
set(OpenCV_DIR "E:\\LIBS\\opencv\\build\\x64\\vc15\\lib")
find_package( OpenCV REQUIRED )
include_directories(${OpenCV_INCLUDE_DIRS})
message(${OpenCV_LIBS})
add_executable(SOMETHINF main.cpp)
target_link_libraries(SOMETHINF ${OpenCV_LIBS})
如您所见,我在其中放置了 message()来查看它是否找到了文件并且确实存在:
opencv_calib3dopencv_coreopencv_dnnopencv_features2dopencv_flannopencv_gapiopencv_highguiopencv_imgcodecsopencv_imgprocopencv_mlopencv_objdetectopencv_photoopencv_stitchingopencv_videoopencv_videoioopencv_world
-- Configuring done
-- Generating done
-- Build files have been written to: E:/SOMETHINF/cmake-build-debug
[Finished]
以前有人遇到过类似的事情吗?
答案 0 :(得分:2)
看起来您正在使用msvc库,但是如果使用MinGW编译器,它将无法工作。 您可以阅读此link来了解原因。
提供正确的库应该可以解决您的问题!通常,项目的所有者提供msvc 12/14/15/16和mingw二进制文件。如果您没有它们,我会通过快速搜索找到this unofficial build。