我尝试安装绘图软件。它通过了“./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/bi
n 中可以看到 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