繁体   English   中英

CMake乱序添加OpenCV库

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM