1. 程式人生 > >libmkl_intel_thread.so中對部分函式未定義的引用

libmkl_intel_thread.so中對部分函式未定義的引用

問題
在編譯bdf的時候出現瞭如下錯誤

/home/js/Documents/tool/intel2013/mkl/lib/intel64/libmkl_intel_thread.so:對‘omp_get_nested’未定義的引用
/home/js/Documents/tool/intel2013/mkl/lib/intel64/libmkl_intel_thread.so:對‘__kmpc_end_critical’未定義的引用
/home/js/Documents/tool/intel2013/mkl/lib/intel64/libmkl_intel_thread.so:對‘__kmpc_for_static_init_8’未定義的引用
/home/js/Documents/tool/intel2013/mkl/lib
/intel64/libmkl_intel_thread.so:對‘__kmpc_atomic_float8_add’未定義的引用 /home/js/Documents/tool/intel2013/mkl/lib/intel64/libmkl_intel_thread.so:對‘__kmpc_dispatch_next_4’未定義的引用 /home/js/Documents/tool/intel2013/mkl/lib/intel64/libmkl_intel_thread.so:對‘__kmpc_master’未定義的引用 /home/js/Documents/tool/intel2013/mkl/lib/intel64/libmkl_intel_thread.so:對‘__kmpc_for_static_fini’未定義的引用 /home/js/Documents/tool/intel2013/mkl/lib
/intel64/libmkl_intel_thread.so:對‘__kmpc_flush’未定義的引用 /home/js/Documents/tool/intel2013/mkl/lib/intel64/libmkl_intel_thread.so:對‘__kmpc_for_static_init_8u’未定義的引用 /home/js/Documents/tool/intel2013/mkl/lib/intel64/libmkl_intel_thread.so:對‘__kmpc_for_static_init_4’未定義的引用 /home/js/Documents/tool/intel2013/mkl/lib/intel64/libmkl_intel_thread.so:對‘__kmpc_fork_call’未定義的引用 /home/js/Documents/tool/intel2013/mkl/lib
/intel64/libmkl_intel_thread.so:對‘__kmpc_dispatch_next_8’未定義的引用 /home/js/Documents/tool/intel2013/mkl/lib/intel64/libmkl_intel_thread.so:對‘__kmpc_push_num_threads’未定義的引用 /home/js/Documents/tool/intel2013/mkl/lib/intel64/libmkl_intel_thread.so:對‘omp_get_num_procs’未定義的引用 /home/js/Documents/tool/intel2013/mkl/lib/intel64/libmkl_intel_thread.so:對‘__kmpc_ordered’未定義的引用 /home/js/Documents/tool/intel2013/mkl/lib/intel64/libmkl_intel_thread.so:對‘__kmpc_barrier’未定義的引用 /home/js/Documents/tool/intel2013/mkl/lib/intel64/libmkl_intel_thread.so:對‘__kmpc_atomic_cmplx8_add’未定義的引用 /home/js/Documents/tool/intel2013/mkl/lib/intel64/libmkl_intel_thread.so:對‘__kmpc_dispatch_fini_4’未定義的引用 /home/js/Documents/tool/intel2013/mkl/lib/intel64/libmkl_intel_thread.so:對‘__kmpc_global_thread_num’未定義的引用 /home/js/Documents/tool/intel2013/mkl/lib/intel64/libmkl_intel_thread.so:對‘__kmpc_dispatch_init_4’未定義的引用 /home/js/Documents/tool/intel2013/mkl/lib/intel64/libmkl_intel_thread.so:對‘omp_get_max_threads’未定義的引用 /home/js/Documents/tool/intel2013/mkl/lib/intel64/libmkl_intel_thread.so:對‘__kmpc_critical’未定義的引用 /home/js/Documents/tool/intel2013/mkl/lib/intel64/libmkl_intel_thread.so:對‘__kmpc_end_serialized_parallel’未定義的引用 /home/js/Documents/tool/intel2013/mkl/lib/intel64/libmkl_intel_thread.so:對‘__kmpc_reduce_nowait’未定義的引用 /home/js/Documents/tool/intel2013/mkl/lib/intel64/libmkl_intel_thread.so:對‘__kmpc_end_master’未定義的引用 /home/js/Documents/tool/intel2013/mkl/lib/intel64/libmkl_intel_thread.so:對‘__kmpc_single’未定義的引用 /home/js/Documents/tool/intel2013/mkl/lib/intel64/libmkl_intel_thread.so:對‘ompc_set_nested’未定義的引用 /home/js/Documents/tool/intel2013/mkl/lib/intel64/libmkl_intel_thread.so:對‘__kmpc_dispatch_fini_8’未定義的引用 /home/js/Documents/tool/intel2013/mkl/lib/intel64/libmkl_intel_thread.so:對‘omp_in_parallel’未定義的引用 /home/js/Documents/tool/intel2013/mkl/lib/intel64/libmkl_intel_thread.so:對‘__kmpc_dispatch_init_8’未定義的引用 /home/js/Documents/tool/intel2013/mkl/lib/intel64/libmkl_intel_thread.so:對‘__kmpc_atomic_fixed8_add’未定義的引用 /home/js/Documents/tool/intel2013/mkl/lib/intel64/libmkl_intel_thread.so:對‘__kmpc_atomic_cmplx4_add’未定義的引用 /home/js/Documents/tool/intel2013/mkl/lib/intel64/libmkl_intel_thread.so:對‘__kmpc_ok_to_fork’未定義的引用 /home/js/Documents/tool/intel2013/mkl/lib/intel64/libmkl_intel_thread.so:對‘__kmpc_end_single’未定義的引用 /home/js/Documents/tool/intel2013/mkl/lib/intel64/libmkl_intel_thread.so:對‘omp_get_thread_num’未定義的引用 /home/js/Documents/tool/intel2013/mkl/lib/intel64/libmkl_intel_thread.so:對‘__kmpc_end_ordered’未定義的引用 /home/js/Documents/tool/intel2013/mkl/lib/intel64/libmkl_intel_thread.so:對‘__kmpc_end_reduce_nowait’未定義的引用 /home/js/Documents/tool/intel2013/mkl/lib/intel64/libmkl_intel_thread.so:對‘__kmpc_serialized_parallel’未定義的引用 /home/js/Documents/tool/intel2013/mkl/lib/intel64/libmkl_intel_thread.so:對‘__kmpc_atomic_float4_add’未定義的引用 /home/js/Documents/tool/intel2013/mkl/lib/intel64/libmkl_intel_thread.so:對‘omp_get_num_threads’未定義的引用

解答
在網上找到了解決的方法
在makefile檔案中修改對數學庫的搜尋,新增-lpthread -liomp5

export MATHLIB="-L/home/js/Documents/tool/intel2013/mkl/lib/intel64 -lpthread -liomp5 -lmkl_intel_ilp64 -lmkl_intel_thread -lmkl_core -lpthread"