tar xvf grads-2.2.1-src.tar.gz cd grads-2.2.1
./configure --prefix=/path/to/grads CPPFLAGS="-I/path/to/shp/include -I/path/to/g2clib/include -I/path/to/libsx/include-I/path/to/libpng/include -I/path/to/udunits/include -I/path/to/hdf4/include" LDFLAGS="-L/path/to/shp/lib -lshp -L/path/to/g2clib/lib -lgrib2c -L/path/to/libsx/lib -L/path/to/libpng/lib -L/path/to/udunits/lib -ludunits -L/path/to/hdf4/lib -lmfhdf -ldf"
回显如下,表示配置成功。
mkdir lib cp /path/to/libsx/lib/libsx.so ./lib mkdir include cp /path/to/libsx/include/libsx.h ./include
vim src/Makefile
修改Makefile 398行LIBS的值。
LIBS=-lm -lreadline
修改Makefile 483行gui_libs的值。
gui_libs = -L/path/to/libsx/lib -lsx -lXext -lXaw -lXpm -lXmu -lXt
vim src/grads.c
修改grads.c文件, 修改第51行将static去掉。
struct gacmn gcmn;
vim src/gauser.c
修改gauser.c文件, 修改第2815行。
#if (USENETCDF == 1 || USEHDF == 1 || USEHDF5 ==1)
make && make install
编译安装完成后,虽然安装过程中没有报错,但是实际运行grads会报错:grads: symbol lookup error: /path/to/grads/grads-2.2.1/lib/libgxdCairo.so: undefined symbol: gxdbkq
原因是libgxdXXX.so没有链接上libgradspy.so, 因此需要链接上libgradspy.so。(但不能第一次编译就链接,因为当时还没有生成libgradspy.so)
再次修改grads-2.2.1/src/Makefile文件,修改475行gd_ldflags的值。
vim src/Makefile
修改第475行gd_ldflags的值为以下内容。
gd_ldflags= -L/path/to/grads/lib -lgradspy
make clean make && make install