mosel을 바이너리 실행 파일로 사용하는 Linux 버전의 fico xpress를 설치했습니다. 다음과 같이 임의의 디렉터리에서 mosel을 호출하고 매개변수 전달과 함께 .mos 모델을 실행할 수 있습니다.
mosel -c "exec PATH/TO/MODEL arg1='value1', arg2='value2'"
종료 코드 0으로 끝났습니다.
그러나 위와 동일한 텍스트를 run.sh 파일에 넣고 다음을 수행합니다.
sh run.sh
나는 얻다:
dyld: Library not loaded: libxprm_mc.dylib
Referenced from: /usr/local/opt/xpress/bin/mosel
Reason: image not found
run.sh: line 4: 22768 Trace/BPT trap: 5 mosel -c "exec PATH/TO/MODEL arg1='value1', arg2='value2'"
dylib 파일을 검색했지만 (내가 아는 한) 존재하지 않습니다. 편집: /usr/local/opt/xpress/lib
명령줄에서 mosel을 실행하려면 다음 항목도 설정해야 했습니다 /etc/launchd.conf
.
setenv XPRESSDIR /usr/local/opt/xpress
setenv PATH $XPRESSDIR/bin:$PATH
setenv LD_LIBRARY_PATH $XPRESSDIR/lib:$LD_LIBRARY_PATH
setenv CLASSPATH $XPRESSDIR/lib/xprs.jar:$CLASSPATH
setenv CLASSPATH $XPRESSDIR/lib/xprb.jar:$CLASSPATH
setenv CLASSPATH $XPRESSDIR/lib/xprm.jar:$XLASSPATH
setenv XPRESS $XPRESSDIR/bin
터미널에서 동일한 줄을 실행할 때가 아닌 쉘 스크립트에서 이 오류가 발생하는 이유는 무엇입니까?
답변1
스크립트에서 다음 경로를 사용하여 DYLD_LIBRARY_PATH
환경 변수를 내보내 보세요 dylib
.
export DYLD_LIBRARY_PATH=/usr/local/opt/xpress/bin/lib:${DYLD_LIBRARY_PATH}
mosel -c "exec PATH/TO/MODEL arg1='value1', arg2='value2'"
이렇게 하면 mosel 실행 파일이 동적 라이브러리가 어디에 있는지 알 수 있습니다.