我一直在尝试在 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 开关的运行时等效项。