Когда я использую pkg_search_module
с IMPORTED_TARGET
, XXX_LIBRARIES
и все другие глобальные свойства установлены, но импортированная цель имеет пустое значение INTERFACE_LINK_LIBRARIES
.
У меня CMake 3.10.2 в Ubuntu 18.04.2 и MKL 2018.2.
Минимальный пример таков:
cmake_minimum_required(VERSION 3.8)
project(test)
find_package(PkgConfig)
pkg_search_module(MKL IMPORTED_TARGET mkl-dynamic-lp64-iomp mkl-dynamic-lp64-seq)
get_property(v TARGET PkgConfig::MKL PROPERTY INTERFACE_LINK_LIBRARIES)
message("target property ${v}")
message("global property ${MKL_LIBRARIES}")
Я ожидаю увидеть, что целевое свойство и глобальное свойство равны, но я получаю
target property
global property mkl_intel_lp64;mkl_intel_thread;mkl_core;iomp5;pthread;m;dl
Когда я пытаюсь добавить импортированную цель в target_link_target некоторого исполняемого файла, библиотеки не связаны, и я получаю ошибку компоновщика.Я делаю что-то не так или это известная ошибка, которая имеет обходной путь?
Добавлено :
$ pkg-config --libs-only-l mkl-dynamic-lp64-iomp
-lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -liomp5 -lpthread -lm -ldl
$ pkg-config --libs mkl-dynamic-lp64-iomp
-L/opt/intel/compilers_and_libraries_2018.2.199/linux/mkl/lib/intel64_lin -L/opt/intel/compilers_and_libraries_2018.2.199/linux/mkl/../compiler/lib/intel64_lin -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -liomp5 -lpthread -lm -ldl