FreeBSD10에서 xemacs를 만들 때 "-lgdbm을 찾을 수 없습니다"

FreeBSD10에서 xemacs를 만들 때 "-lgdbm을 찾을 수 없습니다"

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.

~에서FreeBSD ldconfig 문서:

LD_LIBRARY_PATH 환경 변수는 캐시에서 디렉터리 사용(또는 해당 순서)을 재정의하거나 공유 라이브러리를 찾을 수 있는 다른 디렉터리를 지정하는 데 사용할 수 있습니다. LD_LIBRARY_PATH는 공유 라이브러리를 로드해야 할 때 동적 링커가 검색할 디렉터리 경로의 ":" 구분 목록입니다. 이는 ld(1)의 -L 스위치와 동일한 런타임으로 생각할 수 있습니다.

관련 정보