如何 link in -lpthread -lm -ldl in CMake
How to link in -lpthread -lm -ldl in CMake
我正在尝试将 cmake 用于 link intel mkl 我的代码。来自 mkl link 顾问,我应该 link 图书馆
-L${MKLROOT}/lib/intel64 -lmkl_intel_lp64 -lmkl_core -lmkl_sequential -lpthread -lm -ldl
然后我编写了一个模块来在 Findmkl.cmake 中查找 mkl_intel_lp64
、mkl_core
和 mkl_sequential
:
find_library(lp64_libraries NAMES mkl_intel_lp64 PATHS "${mkl_path}/lib/intel64")
find_library(core_libraries NAMES mkl_core PATHS "${mkl_path}/lib/intel64")
find_library(sequential_libraries NAMES mkl_sequential PATHS "${mkl_path}/lib/intel64")
然后我可以 link 这些库。虽然我不知道如何 link -lpthread -lm -ldl
,但我不确定这个 link 是什么意思,我在 $MKLROOT/lib/intel64 中找不到任何 libpthread.a。
每个 Unix 系统上都应该存在这些库。
因此您只需添加:
target_link_libraries(target_name m dl pthread)
我正在尝试将 cmake 用于 link intel mkl 我的代码。来自 mkl link 顾问,我应该 link 图书馆
-L${MKLROOT}/lib/intel64 -lmkl_intel_lp64 -lmkl_core -lmkl_sequential -lpthread -lm -ldl
然后我编写了一个模块来在 Findmkl.cmake 中查找 mkl_intel_lp64
、mkl_core
和 mkl_sequential
:
find_library(lp64_libraries NAMES mkl_intel_lp64 PATHS "${mkl_path}/lib/intel64")
find_library(core_libraries NAMES mkl_core PATHS "${mkl_path}/lib/intel64")
find_library(sequential_libraries NAMES mkl_sequential PATHS "${mkl_path}/lib/intel64")
然后我可以 link 这些库。虽然我不知道如何 link -lpthread -lm -ldl
,但我不确定这个 link 是什么意思,我在 $MKLROOT/lib/intel64 中找不到任何 libpthread.a。
每个 Unix 系统上都应该存在这些库。
因此您只需添加:
target_link_libraries(target_name m dl pthread)