当我将pkg_search_module
与IMPORTED_TARGET
一起使用时,XXX_LIBRARIES
和所有其他全局属性都已设置,但是导入的目标有空的INTERFACE_LINK_LIBRARIES
。
我在Ubuntu 18.04.2和MKL 2018.2。上具有CMake 3.10.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