c - 在 Debian 上构建 DBD Sybase 的问题

标签 c linux perl gcc

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

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

这是构建的尾部。

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

最佳答案

正如@jww 所指出的,问题出在 binutils 和 gcc 的旧版本上。我刚刚在 Sybase 基本目录中编辑生成的 Makefile 以指向更新版本的 gcc 和 binutils。仅供引用,我工作的版本是“gcc 版本 6.3.0”和“GNU ld (GNU Binutils) 2.28.1”

关于c - 在 Debian 上构建 DBD Sybase 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54514185/

相关文章:

c - 在 C 中创建图案(不是菱形)的嵌套循环

c - 如何获取C指针数组长度?

ruby - 如何在 linux 中更改到 ruby​​ gem 文件夹的位置

linux - 如何在特定云服务中创建 azure VM?

java - 将电子邮件从 postfix 转发到 java 应用程序

C - 扫雷 AI 不点击图 block

c - 如何将数组中的字符转换为字符串

java - 使用着色器在 Windows 中工作但在 Linux 中不工作的 OpenGL 渲染

perl - 如何使用 Perl 删除 Excel 工作表中的整列并在新的 Excel 文件中写入更新的数据?

regex - 从 perl 5.8(32 位)升级到 5.16(64 位)- 正则表达式性能受到影响