在 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 开关的运行时等效项。

相关内容