在Debian上建立DBD Sybase的问题

时间:2019-02-04 10:26:44

标签: c linux perl gcc

我正在尝试在Debian计算机上构建DBD :: Sybase,但是遇到了问题。问题是链接程序时 BFD (GNU Binutils) 2.21.1 internal error 。请帮我解决这个问题。

  1. 我成功安装了freetds
  2. 下载了“ DBD-Sybase-1.16”
  3. 成功执行了“ perl Makefile.PL INSTALL_BASE = / usr / lib / perl5 /”
  4. 执行“ sudo make”时,出现以下错误。我尝试使用Google搜索,但找不到帮助。

这是构建的尾巴。

Skip blib/lib/DBD/Sybase.pm (unchanged)   
Skip blib/lib/DBD/dbd-sybase.pod (unchanged)  
Running Mkbootstrap for DBD::Sybase ()   
chmod 644 Sybase.bs   
/network/glnxa64/gcc-4.7.2/bin/gcc -c  -I/usr/local/freetds/include -DSYB_LP64 -DNO_BLK=1 -I/company/hub/share/apps/BuildTools/Linux/glibc-2.13/x86_64/perl/perl-5.20.2-mw-021/lib/site_perl/5.20.2/x86_64-linux-thread-multi/auto/DBI -D_REENTRANT -D_GNU_SOURCE -O2 -pipe -pthread -fPIC -fwrapv -fno-strict-aliasing -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2   -DVERSION=\"1.16\" -DXS_VERSION=\"1.16\" -fPIC "-I/company/hub/share/apps/BuildTools/Linux/glibc-2.13/x86_64/perl/perl-5.20.2-mw-021/lib/5.20.2/x86_64-linux-thread-multi/CORE"   Sybase.c     

/network/glnxa64/gcc-4.7.2/bin/gcc -c  -I/usr/local/freetds/include -DSYB_LP64 -DNO_BLK=1 -I/company/hub/share/apps/BuildTools/Linux/glibc-2.13/x86_64/perl/perl-5.20.2-mw-021/lib/site_perl/5.20.2/x86_64-linux-thread-multi/auto/DBI -D_REENTRANT -D_GNU_SOURCE -O2 -pipe -pthread -fPIC -fwrapv -fno-strict-aliasing -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2   -DVERSION=\"1.16\" -DXS_VERSION=\"1.16\" -fPIC "-I/company/hub/share/apps/BuildTools/Linux/glibc-2.13/x86_64/perl/perl-5.20.2-mw-021/lib/5.20.2/x86_64-linux-thread-multi/CORE"   dbdimp.c
rm -f blib/arch/auto/DBD/Sybase/Sybase.so
LD_RUN_PATH="/usr/local/freetds/lib" /network/glnxa64/gcc-4.7.2/bin/gcc -shared   -L/usr/local/freetds/lib -pthread -L/usr/local/lib -fstack-protector Sybase.o dbdimp.o  -o blib/arch/auto/DBD/Sybase/Sybase.so       \
   -L/usr/local/freetds/lib -lct -ldl -lm       \

/network/glnxa64/gcc-4.7.2/bin/ld: BFD (GNU Binutils) 2.21.1 internal error, aborting at /local/greg/3p/sources/gcc-4.7/../binutils/bfd/reloc.c line 443 in bfd_get_reloc_size

/network/glnxa64/gcc-4.7.2/bin/ld: Please report this bug.

collect2: error: ld returned 1 exit status
Makefile:485: recipe for target 'blib/arch/auto/DBD/Sybase/Sybase.so' failed
make: *** [blib/arch/auto/DBD/Sybase/Sybase.so] Error 1

1 个答案:

答案 0 :(得分:1)

正如@jww所指出的,问题是binutils和gcc的旧版本。我只是在Sybase基本目录中编辑了生成的Makefile,以指向较新版本的gcc和binutils。仅供参考,我使用的版本是“ gcc版本6.3.0”和“ GNU ld(GNU Binutils)2.28.1”