FreeBSD10 x64에 xemacs 21.4.22를 설치하려고 했습니다. 실행 ./configure
하고 실행하려고 하면 이 라이브러리 오류가 make
발생합니다.libgdm.so
[eddyraz@laptop-eddyraz] ~/proyectos/xemacs/xemacs-21.4.22% sudo make
Password:
cd ./lib-src && make CC='cc' CFLAGS='-g -O3 -Wall -Wno-switch -Winline -Wmissing-prototypes -Wsign-compare -Wshadow -Wpointer-arith' LDFLAGS='' CPPFLAGS='' all
cc -g -O3 -Wall -Wno-switch -Winline -Wmissing-prototypes -Wsign-compare -Wshadow -Wpointer-arith -I. -I../src -I/usr/home/eddyraz/proyectos/xemacs/xemacs-21.4.22/lib-src -I/usr/home/eddyraz/proyectos/xemacs/xemacs-21.4.22/src -DHAVE_CONFIG_H /usr/home/eddyraz/proyectos/xemacs/xemacs-21.4.22/lib-src/ellcc.c -Xlinker -z -Xlinker nocombreloc -Xlinker -R/usr/local/lib -lgdbm -lncurses -lpq -lldap -llber -lm -lutil -lgcc -lc -lgcc /usr/lib/crtend.o /usr/lib/crtn.o -o ellcc
/usr/bin/ld: cannot find -lgdbm
cc: error: linker command failed with exit code 1 (use -v to see invocation)
*** Error code 1
Stop.
make[1]: stopped in /usr/home/eddyraz/proyectos/xemacs/xemacs-21.4.22/lib-src
*** Error code 1
Stop.
make: stopped in /usr/home/eddyraz/proyectos/xemacs/xemacs-21.4.22
확인 /usr/local/lib
하고 알아봤습니다 libgdm
.
[eddyraz@laptop-eddyraz] ~/proyectos/xemacs/xemacs-21.4.22% cd /usr/local/lib
[eddyraz@laptop-eddyraz] /usr/local/lib% ls -l | grep libgdm
[eddyraz@laptop-eddyraz] /usr/local/lib% ls -l | grep libgdbm
-rw-r--r-- 1 root wheel 86310 17 jun 16:57 libgdbm.a
-rwxr-xr-x 1 root wheel 971 17 jun 16:57 libgdbm.la
lrwxr-xr-x 1 root wheel 12 17 jun 16:57 libgdbm.so -> libgdbm.so.4
-rwxr-xr-x 1 root wheel 42032 17 jun 16:57 libgdbm.so.4
[eddyraz@laptop-eddyraz] /usr/local/lib%
make
왜 잘못 됐나요 cannot find -lgdbm
?
답변1
노력하다:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
그런 다음 make를 다시 실행하세요. 을 sudo
실행할 필요는 없습니다 make
.
LD_LIBRARY_PATH 환경 변수는 캐시에서 디렉터리 사용(또는 해당 순서)을 재정의하거나 공유 라이브러리를 찾을 수 있는 다른 디렉터리를 지정하는 데 사용할 수 있습니다. LD_LIBRARY_PATH는 공유 라이브러리를 로드해야 할 때 동적 링커가 검색할 디렉터리 경로의 ":" 구분 목록입니다. 이는 ld(1)의 -L 스위치와 동일한 런타임으로 생각할 수 있습니다.