제 응용 프로그램의 경우 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
은 무시됩니다.
bash 스크립트에 동일한 2 줄을 추가하면 응용 프로그램이 다시 작동합니다.
이 테스트 스크립트에서 입증 된 것처럼 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'는 리눅스에서는 적용 할 수 없으며,'LD_PRELOAD'입니다. –