I'm trying to build an OpenCV-based project using CMake, running on Linux. So far my CMakeLists.txt
files looks something like
FIND_PACKAGE (OpenCV REQUIRED) ... TARGET_LINK_LIBRARIES (my-executable ${OpenCV_LIBS})
but this results in dynamically linked libraries. How do I link with static libraries?
Static libraries are either merged with other static libraries and object files during building/linking to form a single executable or loaded at run-time into the address space of their corresponding executable at a static memory offset determined at compile-time/link-time.
Actually this issue seems to have already been fixed in the OpenCVConfig.cmake
that comes with OpenCV. All you have to do is define OpenCV_STATIC
in your CMakeLists.txt
. I.e.
set(OpenCV_STATIC ON) find_package(OpenCV REQUIRED)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With