2016-07-21 3 views
2

私はcmakeを使って自分のコードにintel mklをリンクしようとしています。私はその後、Findmkl.cmakeにmkl_intel_lp64mkl_core、およびmkl_sequentialを見つけるために、モジュールを書くCMakeで-lpthread -lm -ldlをリンクするには

-L${MKLROOT}/lib/intel64 -lmkl_intel_lp64 -lmkl_core -lmkl_sequential -lpthread -lm -ldl 

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") 

その後、私はこれらのライブラリをリンクすることができMKLリンク顧問からは、私がして、ライブラリをリンクする必要があります。 -lpthread -lm -ldlをリンクする方法はわかりませんが、このリンクの意味はわかりません。$ MKLROOT/lib/intel64にlibpthread.aが見つかりません。

答えて

3

これらのライブラリは各Unixシステム上に存在する必要があります。

だから、あなただけ追加することができます。

target_link_libraries(target_name m dl pthread) 
+0

どうもありがとう、デビッド。私はこれを試して、それは動作します。私は少しでも実際に必要です。私のコードにはたくさんのライブラリがあり、mklを追加するには 'set(lib_all $ {mkl_libraries} $ {lib_all})'を使い、gmpをリンクするには 'set(lib_all $ {gmp_libraries} $ {lib_all})'を使います。ライブラリを使用する場合は、target_link_libraries(target_name $ {lib_all})を使用します。私は 'm dl pthread'をtarget_link_libraries(target_name $ {lib_all} m dl pthread)の代わりにmkl_librariesに置くことを好みます。 mkl_librariesに 'm dl pthread'を追加する方法はありますか? –

+0

'set(mkl_libraries $ {mkl_libraries} m dl pthread)'を使用してください。 –

+0

あなたのお手伝いをしてくれてありがとうございます。 –

関連する問題