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 スイッチと同じランタイムと考えることができます。

関連情報