link시 error를 warning 메세지???
[hokim@sens root]$ sudo g++ -O -o bin/h2root main/src/h2root.o hbook/src/hntvar2.o -Llib -lCore -lCint -lHist -lGraf -lGraf3d -lGpad -lTree -lMatrix -L/belle/cern/2003/lib/so -L/belle/cern/2003/lib/so -lpacklib -lkernlib -lg2c -lnsl -lm -ldl -lpthread -rdynamic
/usr/bin/ld: warning: pawc.so, needed by /belle/cern/2003/lib/so/libpacklib.so, not found (try using -rpath or -rpath-link)
/usr/bin/ld: warning: libgrafX11.so.1, needed by /belle/cern/2003/lib/so/libpacklib.so, not found (try using -rpath or -rpath-link)
/usr/bin/ld: warning: libmathlib.so.1, needed by /belle/cern/2003/lib/so/libpacklib.so, not found (try using -rpath or -rpath-link)
/usr/bin/ld: warning: libpawlib.so.1, needed by /belle/cern/2003/lib/so/libpacklib.so, not found (try using -rpath or -rpath-link)
/belle/cern/2003/lib/so/libpacklib.so: undefined reference to `gamdis_'
/belle/cern/2003/lib/so/libpacklib.so: undefined reference to `dgmlt1_'
/belle/cern/2003/lib/so/libpacklib.so: undefined reference to `cshfast_'
/belle/cern/2003/lib/so/libpacklib.so: undefined reference to `studis_'
/belle/cern/2003/lib/so/libpacklib.so: undefined reference to `igsrap_'
/belle/cern/2003/lib/so/libpacklib.so: undefined reference to `dgagnc_'
/belle/cern/2003/lib/so/libpacklib.so: undefined reference to `prob_'
/belle/cern/2003/lib/so/libpacklib.so: undefined reference to `igwkty_'
/belle/cern/2003/lib/so/libpacklib.so: undefined reference to `iclrwk_'
/belle/cern/2003/lib/so/libpacklib.so: undefined reference to `freq_'
/belle/cern/2003/lib/so/libpacklib.so: undefined reference to `igmenu_'
/belle/cern/2003/lib/so/libpacklib.so: undefined reference to `dbinom_'
/belle/cern/2003/lib/so/libpacklib.so: undefined reference to `dgmlt3_'
/belle/cern/2003/lib/so/libpacklib.so: undefined reference to `dgmlt2_'
/belle/cern/2003/lib/so/libpacklib.so: undefined reference to `igsse_'
/belle/cern/2003/lib/so/libpacklib.so: undefined reference to `dgapnc_'
/belle/cern/2003/lib/so/libpacklib.so: undefined reference to `iginit_'
/belle/cern/2003/lib/so/libpacklib.so: undefined reference to `igrng_'
collect2: ld returned 1 exit status
[hokim@sens root]$
컴파일하는 과정에서
/usr/bin/ld: warning: libmathlib.so.1, needed by /belle/cern/2003/lib/so/libpacklib.so, not found (try using -rpath or -rpath-link)
와 같은 warning 뒤에 undefined reference 에러들이 생겼습니다
그래서 못찾는 라이브러리를 다음처럼 직접링크해주면 해결이 되기는 하는데 왜 그런지 그 이유를 알고 싶습니다.
[hokim@sens root]$ sudo g++ -O -o bin/h2root main/src/h2root.o hbook/src/hntvar2.o -Llib -lCore -lCint -lHist -lGraf -lGraf3d -lGpad -lTree -lMatrix -L/belle/cern/2003/lib/so -L/belle/cern/2003/lib/so -lpacklib -lkernlib /belle/cern/2003/lib/so/libgrafX11.so /belle/cern/2003/lib/so/libmathlib.so.1 /belle/cern/2003/lib/so/libpawlib.so.1 /belle/cern/2003/lib/so/libgraflib.so.1 /belle/cern/2003/lib/so/pawc.so -lg2c -lnsl -lm -ldl -lpthread -rdynamic
/usr/bin/ld: warning: pawc.so, needed by /belle/cern/2003/lib/so/libpacklib.so, not found (try using -rpath or -rpath-link)
많은 글들이 이미 있습니다.리눅스) ldconfig 라는 키워드로
많은 글들이 이미 있습니다.
리눅스) ldconfig 라는 키워드로, 화면 상단의 검색메뉴를 눌러 검색해보세요.
유닉스) LD_LIBRARY_PATH라는 키워드로 검색
------------------ P.S. --------------
지식은 오픈해서 검증받아야 산지식이된다고 동네 아저씨가 그러더라.
[quote="mach"]많은 글들이 이미 있습니다.리눅스) ld
libgrafX11.so.1, libmathlib.so.1과 같은 not found library들이 있는 디렉토리 /belle/cern/2003/lib/so디렉토리는 이미 LD_LIBRARY_PATH에 지정되어 있습니다
:evil: sudo 의 문제였군요...sudo로 root 권한
:evil: sudo 의 문제였군요...
sudo로 root 권한으로 컴파일하면 hokim이라는 유저의 LD_LIBRARY_PATH라는 환경변수의 값을 상속받지 못하는 것 같습니다 ( sudo -s 로 루트로 로그인해서 LD_LIBRARY_PATH를 echo 해보면 상속하게끔 되어있는데 말입니다 )
댓글 달기