[英]CMake adding OpenCV libs out of order
我需要在链接过程中控制库的顺序,但是CMake使用OpenCV库做奇怪的事情。 请参阅以下CMakeLists.txt:
cmake_minimum_required(VERSION 3.13)
project(cvtest)
set( CMAKE_VERBOSE_MAKEFILE on )
add_executable(cvtest "test.cpp")
find_package(OpenCV 3 REQUIRED core)
target_link_libraries(cvtest ${OpenCV_LIBS} FOO)
构建生成的makefile时,库按以下顺序链接:
libopencv_core.3.4.2.dylib -lFOO
到目前为止一切都很好(FOO需要倒数第二个)。 但是,如果我添加另一个opencv库:
cmake_minimum_required(VERSION 3.13)
project(cvtest)
set( CMAKE_VERBOSE_MAKEFILE on )
add_executable(cvtest "test.cpp")
find_package(OpenCV 3 REQUIRED core highgui)
target_link_libraries(cvtest ${OpenCV_LIBS} FOO)
然后,链接器按以下顺序接收库:
libopencv_highgui.3.4.2.dylib -lFOO libopencv_videoio.3.4.2.dylib libopencv_imgcodecs.3.4.2.dylib libopencv_imgproc.3.4.2.dylib libopencv_core.3.4.2.dylib
重要的是,FOO不再持久! 我尝试了所有操作,但无法使FOO出现在链接列表的末尾。 有谁知道该怎么做?
谢谢,
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.