Мне нужно контролировать порядок библиотек во время компоновки, но 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)
При создании результирующего make-файла библиотеки связываются в следующем порядке:
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 в конце списка ссылок.Кто-нибудь знает, как это можно сделать?
Спасибо,