我有一个使用Intel-mkl的C ++程序,在编译代码后(假设可执行文件是var tabLabel = document.getElementById('one');
tabLabel.addEventListener("click", function() {
if (this.innerHTML=="Read More") {
this.innerHTML = "Collapse";
} else {
this.innerHTML = "Read More";
}
});
),我可以在终端中运行它
a.out
完美无缺。
如果我使用python /Users/hshi/test/a.out
来运行subprocess.call
,那么python代码就像
a.out
然后运行python脚本,它有一个错误:
import subprocess
subprocess.call( "/Users/hshi/test/a.out", shell=True)
我认为python脚本应该像在终端中运行dyld: Library not loaded: @rpath/libmkl_intel_lp64.dylib
Referenced from: /Users/hshi/test/a.out
Reason: image not found
一样工作。
我正在使用MacBookPro。我已经使用
将Intel-mkl路径添加到/Users/hshi/test/a.out
和DYLD_LIBRARY_PATH
DYLD_FALLBACK_LIBRARY_PATH
export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:/Users/hshi/Library/Intel/mkl/lib
export DYLD_FALLBACK_LIBRARY_PATH=$DYLD_FALLBACK_LIBRARY_PATH:/Users/hshi/Library/Intel/mkl/lib
中的。
~/.profile
由cmake编译,编译标志看起来像
a.out
我觉得编译代码很好,问题可能是Python没有加载我的环境路径。谢谢你的帮助。
=========================
如果我创建到/ usr / local / lib的符号链接,问题就解决了。
我也在网上找到了一些有趣的信息https://github.com/oracle/node-oracledb/issues/231
/Users/hshi/Library/openmpi-intel/bin/mpicxx -Wall -O3 -DNDEBUG
-Wl,-search_paths_first -Wl,-headerpad_max_install_names CMakeFiles/complexDoubleErrorAnalysis.dir/complexDoubleErrorAnalysis.cpp.o -o a.out
-Wl,-rpath, /Users/hshi/Library/Intel/mkl/lib/libmkl_intel_lp64.dylib
/Users/hshi/Library/Intel/mkl/lib/libmkl_core.dylib
/Users/hshi/Library/Intel/mkl/lib/libmkl_sequential.dylib -lm -ldl -lpthread
我猜python subprocess.call无法加载DYLD_LIBRARY_PATH。