I'm using CLion in Windows 11 and have installed OpenCV 2.4 with vcpkg. My cmake throws 0 errors, but when compiling my code, I get multiple undefined references such as
====================[ Build | untitled | Debug ]================================
"C:\Program Files\JetBrains\CLion 2023.3.4\bin\cmake\win\x64\bin\cmake.exe" --build C:\Users\windows\CLionProjects\untitled\cmake-build-debug --target untitled -j 14
[1/2] Building CXX object CMakeFiles/untitled.dir/main.cpp.obj
[2/2] Linking CXX executable untitled.exe
FAILED: untitled.exe
cmd.exe /C "cd . && C:\PROGRA~1\JETBRA~1\CLION2~1.4\bin\mingw\bin\G__~1.EXE -g CMakeFiles/untitled.dir/main.cpp.obj -o untitled.exe -Wl,--out-implib,libuntitled.dll.a -Wl,--major-image-version,0,--minor-image-version,0 C:/Users/windows/.vcpkg-clion/vcpkg/installed/x64-windows/debug/lib/OpenCL.lib C:/Users/windows/.vcpkg-clion/vcpkg/installed/x64-windows/debug/lib/opencv_videostab2d.lib C:/Users/windows/.vcpkg-clion/vcpkg/installed/x64-windows/debug/lib/opencv_ts2d.lib C:/Users/windows/.vcpkg-clion/vcpkg/installed/x64-windows/debug/lib/opencv_superres2d.lib C:/Users/windows/.vcpkg-clion/vcpkg/installed/x64-windows/debug/lib/opencv_stitching2d.lib C:/Users/windows/.vcpkg-clion/vcpkg/installed/x64-windows/debug/lib/opencv_contrib2d.lib C:/Users/windows/.vcpkg-clion/vcpkg/installed/x64-windows/debug/lib/opencv_nonfree2d.lib C:/Users/windows/.vcpkg-clion/vcpkg/installed/x64-windows/debug/lib/opencv_ocl2d.lib C:/Users/windows/.vcpkg-clion/vcpkg/installed/x64-windows/debug/lib/opencv_gpu2d.lib C:/Users/windows/.vcpkg-clion/vcpkg/installed/x64-windows/debug/lib/opencv_photo2d.lib C:/Users/windows/.vcpkg-clion/vcpkg/installed/x64-windows/debug/lib/opencv_objdetect2d.lib C:/Users/windows/.vcpkg-clion/vcpkg/installed/x64-windows/debug/lib/opencv_legacy2d.lib C:/Users/windows/.vcpkg-clion/vcpkg/installed/x64-windows/debug/lib/opencv_video2d.lib C:/Users/windows/.vcpkg-clion/vcpkg/installed/x64-windows/debug/lib/opencv_ml2d.lib C:/Users/windows/.vcpkg-clion/vcpkg/installed/x64-windows/debug/lib/opencv_calib3d2d.lib C:/Users/windows/.vcpkg-clion/vcpkg/installed/x64-windows/debug/lib/opencv_features2d2d.lib C:/Users/windows/.vcpkg-clion/vcpkg/installed/x64-windows/debug/lib/opencv_highgui2d.lib C:/Users/windows/.vcpkg-clion/vcpkg/installed/x64-windows/debug/lib/opencv_imgproc2d.lib C:/Users/windows/.vcpkg-clion/vcpkg/installed/x64-windows/debug/lib/opencv_flann2d.lib C:/Users/windows/.vcpkg-clion/vcpkg/installed/x64-windows/debug/lib/opencv_core2d.lib -lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32 && cmd.exe /C "cd /D C:\Users\windows\CLionProjects\untitled\cmake-build-debug && C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -noprofile -executionpolicy Bypass -file C:/Users/windows/.vcpkg-clion/vcpkg/scripts/buildsystems/msbuild/applocal.ps1 -targetBinary C:/Users/windows/CLionProjects/untitled/cmake-build-debug/untitled.exe -installedDir C:/Users/windows/.vcpkg-clion/vcpkg/installed/x64-windows/debug/bin -OutVariable out""
C:\Program Files\JetBrains\CLion 2023.3.4\bin\mingw\bin/ld.exe: CMakeFiles/untitled.dir/main.cpp.obj: in function `main':
C:/Users/windows/CLionProjects/untitled/main.cpp:7: undefined reference to `cv::imread(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int)'
C:\Program Files\JetBrains\CLion 2023.3.4\bin\mingw\bin/ld.exe: CMakeFiles/untitled.dir/main.cpp.obj: in function `cv::Mat::~Mat()':
C:/Users/windows/.vcpkg-clion/vcpkg/installed/x64-windows/include/opencv2.4/opencv2/core/mat.hpp:278: undefined reference to `cv::fastFree(void*)'
C:\Program Files\JetBrains\CLion 2023.3.4\bin\mingw\bin/ld.exe: CMakeFiles/untitled.dir/main.cpp.obj: in function `cv::Mat::release()':
C:/Users/windows/.vcpkg-clion/vcpkg/installed/x64-windows/include/opencv2.4/opencv2/core/mat.hpp:367: undefined reference to `cv::Mat::deallocate()'
collect2.exe: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.
This is my Cmake file
cmake_minimum_required(VERSION 3.27)
project(untitled LANGUAGES CXX)
find_package(OpenCL REQUIRED)
find_package(OpenCV 2 REQUIRED)
find_package(OpenCV 2 COMPONENTS core highgui imgproc REQUIRED)
#set(CMAKE_CXX_STANDARD 23)
add_executable(${PROJECT_NAME} main.cpp)
include_directories(${OpenCV_INCLUDE_DIRS})
message(STATUS "status of include dirs: ${OpenCV_INCLUDE_DIRS}")
target_link_libraries(${PROJECT_NAME} PRIVATE OpenCL::OpenCL ${OpenCV_LIBS})
message(STATUS "opencv libs location: ${OpenCV_LIBS}")
set_target_properties(${PROJECT_NAME} PROPERTIES CXX_STANDARD 23 CXX_STANDARD_REQUIRED ON CXX_EXTENSIONS OFF)
target_compile_definitions(${PROJECT_NAME} PRIVATE CL_TARGET_OPENCL_VERSION=120)
The output of my Cmake is:
"C:\Program Files\JetBrains\CLion 2023.3.4\bin\cmake\win\x64\bin\cmake.exe" -DCMAKE_BUILD_TYPE=Debug "-DCMAKE_MAKE_PROGRAM=C:/Program Files/JetBrains/CLion 2023.3.4/bin/ninja/win/x64/ninja.exe" -DCMAKE_TOOLCHAIN_FILE=C:\Users\windows\.vcpkg-clion\vcpkg\scripts\buildsystems\vcpkg.cmake -G Ninja -S C:\Users\windows\CLionProjects\untitled -B C:\Users\windows\CLionProjects\untitled\cmake-build-debug
-- status of include dirs: C:/Users/windows/.vcpkg-clion/vcpkg/installed/x64-windows/include/opencv2.4/opencv;C:/Users/windows/.vcpkg-clion/vcpkg/installed/x64-windows/include/opencv2.4
-- opencv libs location: opencv_videostab;opencv_video;opencv_ts;opencv_superres;opencv_stitching;opencv_photo;opencv_ocl;opencv_objdetect;opencv_nonfree;opencv_ml;opencv_legacy;opencv_imgproc;opencv_highgui;opencv_gpu;opencv_flann;opencv_features2d;opencv_core;opencv_contrib;opencv_calib3d;opencv_core;opencv_highgui;opencv_imgproc
-- Configuring done (0.0s)
-- Generating done (0.0s)
-- Build files have been written to: C:/Users/windows/CLionProjects/untitled/cmake-build-debug
[Finished]
I'm not sure what's wrong.