0

我正在尝试为 tcl 配置和制作安装包 nap6.4,但它在“制作”期间失败并出现以下错误:

cc -shared  -o libnap6.4.so cart_proj.o eval_tree.o function.o geometry.o     land_flag.o land_flag_i.o linsys.o nap.o napChoice.o napDyad.o napDyadLib.o  napImgNAO.o napInit.o napLib.o napMonad.o napParse.tab.o napParseLib.o  napPolygon.o napSpatial.o nap_get.o nap_hdf.o nap_netcdf.o nap_ooc.o  triangulate.o  -L/usr/local/lib -lnetcdf -L/usr/local/lib -lmfhdf -ldf -ljpeg -lz  -L/usr/local/lib -lproj -L. -ltclstub8.4 -ltkstub8.4  -lieee -lm -lX11 
 /usr/bin/ld: /usr/local/lib/libmfhdf.a(mfsd.o): relocation R_X86_64_32    against  `.rodata.str1.1' can not be used when making a shared object; recompile   with - fPIC
 /usr/local/lib/libmfhdf.a: error adding symbols: Bad value
 collect2: error: ld returned 1 exit status
 make: *** [libnap6.4.so] Error 1

所以我被告知要使用 -fPIC 重新编译,我在终端通过以下方式进行了编译:

export CFLAGS=-fPIC
./configure --prefix/lib/ActiveTcl --enable-shared
make

但这不起作用。我也尝试过使用 --disable-shared、make clean 和

export CFLAGS="-fPIC -DHAVE_NETCDF"/ export CFLAGS="-fPIC" etc..

以及其他不工作的 CFLAGS 版本。

所以我想知道如何使用 -fPIC 重新编译?我在这里缺少一些特殊的语法吗?

4

0 回答 0