对于我的应用程序,我使用DYLD_INSERT_LIBRARIES来切换库。我正在运行Mac OS X,El Capitan。当通过bash调用应用程序时,dyld_insert_libraries被忽略
如果我设置在我的壳这些环境变量:
export PYTHONHOME=${HOME}/anaconda
export DYLD_INSERT_LIBRARIES=${HOME}/anaconda/lib/libpython2.7.dylib:${HOME}/anaconda/lib/libmkl_rt.dylib
如果我直接启动我的应用程序,它工作正常。但是,如果我通过我写的bash脚本调用它,DYLD_INSERT_LIBRARIES
将被忽略。
如果我将相同的2行添加到我的bash脚本,我的应用程序再次工作。
看起来DYLD_INSERT_LIBRARIES
在调用bash脚本时未被设置,正如本测试脚本所证明的。
#!/bin/bash
set -e
echo ${DYLD_INSERT_LIBRARIES}
有什么办法让bash脚本继承并传递下去DYLD_INSERT_LIBRARIES
?
为什么不将导出添加到您的配置文件或脚本中? –
这个脚本应该是跨平台的。 ''DYLD_INSERT_LIBRARIES''应该可以在启动脚本中用我的应用程序的命令调用。现在我更加好奇如何让bash兑现DYLD_INSERT_LIBRARIES和DYLD_LIBRARY_PATH。 – Juan
'DYLD_INSERT_LIBRARIES'不适用于Linux,它是'LD_PRELOAD'。 –