Reputation: 1085
I want to try this OpenCv code on MacOs.
I have followed this tutorial to install OpenCv on MacOs. (Before I tried to install with homebrew)
I have the following CMakeLists.txt
cmake_minimum_required(VERSION 3.1)
# Enable C++11
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED TRUE)
SET(OpenCV_DIR <path>/installation/OpenCV-master/lib/cmake/opencv4)
# Find OpenCV, you may need to set OpenCV_DIR variable
# to the absolute path to the directory containing OpenCVConfig.cmake file
# via the command line or GUI
find_package(OpenCV REQUIRED)
# If the package has been found, several variables will
# be set, you can find the full list with descriptions
# in the OpenCVConfig.cmake file.
# Print some message showing some of them
message(STATUS "OpenCV library status:")
message(STATUS " config: ${OpenCV_DIR}")
message(STATUS " version: ${OpenCV_VERSION}")
message(STATUS " libraries: ${OpenCV_LIBS}")
message(STATUS " include path: ${OpenCV_INCLUDE_DIRS}")
# Declare the executable target built from your sources
#add_executable(opencv_example example.cpp)
project(intro_PCA)
add_executable(myapp introduction_to_pca.cpp)
# Link your application with OpenCV libraries
#target_link_libraries(opencv_example ${OpenCV_LIBS})
include_directories(
<path>/installation/OpenCV-master/include/opencv4
)
install(TARGETS myapp DESTINATION ../0-BRIQUE_PCA/briquepca/)
From the folder build
I compile the code with the following commands:
$ cmake ..
$ cmake --build . --config Release
The compilation ends with the following error:
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [myapp] Error 1
make[1]: *** [CMakeFiles/myapp.dir/all] Error 2
make: *** [all] Error 2
I found here that one should add following stuff:
-libopencv_core \
-libopencv_imgproc \
-libopencv_features2d \
-libopencv_highgui
But I do not understand where I have to add these lines in my CMakeLists.txt
Does someone have an idea?
Upvotes: 0
Views: 705
Reputation: 150815
You can link libraries with the command: target_link_libraries(myapp ${OpenCV_LIBS}
), it will link myapp
to all OpenCV libraries defined by find_package(OpenCV REQUIRED)
.
Upvotes: 1