LD_LIBRARY_PATH에 so 파일이 있고 지정도 했는데 실행이 안되네
상황을 말씀드리면...
다른 사람이 만들어 놓은 Makefile 가지고 프로젝트 소스를
컴파일 하는데요..
Makefile 중에서 어떤 프로그램을 실행시키도록 되어 있습니다.
그 프로그램이 동작하기 위해서는 libTAO_IDL.so.5.4.2 라는
공유 오브젝트 파일이 필요합니다..
이 파일이 있는 경로를 export LD_LIBRARY_PATH=경로 해서 지정을 해 줬거든요
echo $LD_LIBRARY_PATH를 하면 경로가 잘 지정되어 있고요..
또, 제가 실제로 그 프로그램을 쉘상에서 실행시켜봐도 잘
실행이 됩니다.
그런데.. Makefile로 실행하게끔해서 make를 돌리면..
Compiling IDL source
/usr/local/ACE_wrappers/TAO/TAO_IDL/tao_idl: error while loading shared libraries : libTAO_IDL_BE.so.5.4.2: cannot open shard object file : No such file or directory
라고 나옵니다.
다시 정리를 해보면 /usr/local/ACE_wrappers/TAO/TAO_IDL/tao_idl를 실행시키기 위해서는 libTAO_IDL_BE.so.5.4.2 파일이 필요하거든요.
export LD_LIBRARY_PATH=경로 로 지정을 했는데 못찼는다고
위의 에러메시지 처럼 나오고요.. 이상한건 내가 쉘에서 직접
/usr/local/ACE_wrappers/TAO/TAO_IDL/tao_idl를 치면 위와같은
에러 메시지 없이 잘 실행된다는 것입니다.
'쉘변수와 환경변수의 차이'라는 건가요?
도대체 제가 뭘 잘못한거죠?
에코 명령어 치면 다음과 같이 나옵니다.
echo $LD_LIBRARY_PATH
/usr/local/ACE_wrappers/ace:/usr/local/ACE_wrappers/lib:/usr/local/ACE_wrappers/ace:/usr/local/ACE_wrappers/lib:
음.. 제가 뭘 잘못한건지.. 고수님들의 조언 기다립니다.
Makefile에서 어떤 방식으로 그 프로그램을 실행시키는지요? (해당
Makefile에서 어떤 방식으로 그 프로그램을 실행시키는지요? (해당 라인..)
그런데 대략 상황을 보아하니, 혹시 root 권한이 있으시면 다음과 같이 하시는게 가장 맘편하실 듯 합니다.
:)
댓글 달기