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