Я использовал vscode, cmake для компиляции проекта opencv в Windows. У меня была проблема при сборке. Я очень смущен.
Ранее была ошибка, потому что OpenCV не был завершен. После полной сборки я изменил свой CMakeLists.txt, с set(OpenCV_DIR D:/OpenCV/opencv/sources/build)
на set(OpenCV_DIR D:/OpenCV/opencv/build/x64/vc15/lib)
. Но есть некоторые новые ошибки.
Это мой CMakeLists.txt
PROJECT(myAnswerCpp)
cmake_minimum_required(VERSION 3.5)
set(OpenCV_DIR D:/OpenCV/opencv/build/x64/vc15/lib)
find_package(OpenCV REQUIRED)
include_directories(${OpenCV_INCLUDE_DIRS})
add_executable(myAnswerCpp myAnswerCpp1.cpp)
link_directories(${OpenCV_LIBRARY_DIRS})
target_link_libraries(myAnswerCpp ${OpenCV_LIBS})
И это мой тестовый код.
#include <iostream>
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;
int main(){
Mat src = imread("C:/Users/87689/Desktop/bit.JPG", IMREAD_COLOR );
imshow("bit",src);
waitKey(0);
return 0;
}
И это выходная информация
[build] Starting build
[proc] Executing command: D:\CMake\bin\cmake.EXE --build d:/ImageProcessing/myAnswerCpp/build --config Debug --target myAnswerCpp -- -j 6
[build] [ 50%] Linking CXX executable myAnswerCpp.exe
[build] CMakeFiles\myAnswerCpp.dir/objects.a(myAnswerCpp1.cpp.obj): In function `main':
[build] D:/ImageProcessing/myAnswerCpp/myAnswerCpp1.cpp:14: undefined reference to `cv::imread(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int)'
[build] D:/ImageProcessing/myAnswerCpp/myAnswerCpp1.cpp:15: undefined reference to `cv::imshow(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, cv::_InputArray const&)'
[build] D:/ImageProcessing/myAnswerCpp/myAnswerCpp1.cpp:16: undefined reference to `cv::waitKey(int)'
[build] CMakeFiles\myAnswerCpp.dir/objects.a(myAnswerCpp1.cpp.obj): In function `cv::Mat::~Mat()':
[build] D:/OpenCV/opencv/build/include/opencv2/core/mat.inl.hpp:739: undefined reference to `cv::fastFree(void*)'
[build] CMakeFiles\myAnswerCpp.dir/objects.a(myAnswerCpp1.cpp.obj): In function `cv::Mat::release()':
[build] D:/OpenCV/opencv/build/include/opencv2/core/mat.inl.hpp:851: undefined reference to `cv::Mat::deallocate()'
[build] collect2.exe: error: ld returned 1 exit status
[build] mingw32-make.exe[3]: *** [CMakeFiles\myAnswerCpp.dir\build.make:102: myAnswerCpp.exe] Error 1
[build] mingw32-make.exe[2]: *** [CMakeFiles\Makefile2:75: CMakeFiles/myAnswerCpp.dir/all] Error 2
[build] mingw32-make.exe[1]: *** [CMakeFiles\Makefile2:87: CMakeFiles/myAnswerCpp.dir/rule] Error 2
[build] mingw32-make.exe: *** [Makefile:117: myAnswerCpp] Error 2
[build] Build finished with exit code 2
Пожалуйста, помогите мне решить ошибки. Большое спасибо!