安装软件时libgd-dev引发的错误

安装软件时libgd-dev引发的错误

我尝试安装绘图软件。它通过了“./configure”,但在“make & make install”上失败。见下文:

htan@HT:~/grads-2.2.1$ sudo make
Making all in src
make[1]: Entering directory '/home/htan/grads-2.2.1/src'
make  all-am
make[2]: Entering directory '/home/htan/grads-2.2.1/src'
/bin/bash ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I.  -I. -I..//include   -g -O2 -rdynamic -c -o libgxpGD_la-gxprintGD.lo `test -f 'gxprintGD.c' || echo './'`gxprintGD.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I. -I..//include -g -O2 -rdynamic -c gxprintGD.c  -fPIC -DPIC -o .libs/libgxpGD_la-gxprintGD.o
/bin/bash ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I.  -I. -I..//include   -g -O2 -rdynamic -c -o libgxpGD_la-gxGD.lo `test -f 'gxGD.c' || echo './'`gxGD.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I. -I..//include -g -O2 -rdynamic -c gxGD.c  -fPIC -DPIC -o .libs/libgxpGD_la-gxGD.o
/bin/bash ../libtool  --tag=CC   --mode=link gcc  -g -O2 -rdynamic -version-info 1:0:1  -o libgxpGD.la -rpath /home/htan/grads-2.2.1/lib libgxpGD_la-gxprintGD.lo libgxpGD_la-gxGD.lo -L..//lib   -L/usr/local/lib -lgd -lm
**../libtool: line 6000: cd: ..//lib: No such file or directory
libtool: link: cannot determine absolute directory name of `..//lib'
Makefile:711: recipe for target 'libgxpGD.la' failed**
make[2]: *** [libgxpGD.la] Error 1**
make[2]: Leaving directory '/home/htan/grads-2.2.1/src'
Makefile:610: recipe for target 'all' failed
make[1]: *** [all] Error 2
make[1]: Leaving directory '/home/htan/grads-2.2.1/src'
Makefile:458: recipe for target 'all-recursive' failed
make: *** [all-recursive] Error 1

我觉得这个问题和 libgd 有关。我自己安装了 GD,在/usr/local/bin 中可以看到 gdlib-config。我也尝试使用 root 帐户,但出现了同样的错误。configure 文件中的第 6000 行显示# Regexp to match symbols that can be accessed directly from C. sympat='\([_A-Za-z][_A-Za-z0-9]*\)'

答案1

据我所知,该错误与 gdlib 的位置无关。

相关行实际上是libtool脚本的第 6000 行:

6000           absdir=`cd "$dir" && pwd`

在链接阶段的某个时刻,dir被设置为配置时间变量的值SUPPLIBS,根据./configure --help | less -N应该是

134   SUPPLIBS    Custom path (must be absolute) to a GrADS supplib distribution

默认情况下,它被设置为SUPPLIBS='$(top_builddir)/',因此从子目录调用的 libtool 脚本src最终会尝试cd-../lib但解压后的 tarball 中并不存在该脚本。

因此,要么设置SUPPLIBS为您实际的 GrADS supplib 发行版的路径(如果有的话)

./configure SUPPLIBS=/path/to/GrADS/supplib

或者lib在构建树的顶层创建一个空目录grads-2.2.1以免cd ..//lib失败:

./configure
mkdir ./lib
make

相关内容