pecl安装sqlsrv失败,并显示配置错误:C编译器无法在SLES 12上创建可执行文件

时间:2018-07-23 21:19:37

标签: sql-server gcc pear pecl

在过去的几个小时里,我一直不知所措,试图弄清楚发生了什么。我正在运行SLES 12 SP3服务器,并且需要从PHP连接到Microsoft SQL Server数据库,我遵循了Microsoft的文档,直到要求它运行此命令为止:

pecl install sqlsrv

该命令失败,并显示以下相关输出:

checking whether the C compiler works... no
configure: error: in `/tmp/pear/temp/pear-build-rootLa81RX/sqlsrv-5.3.0':
configure: error: C compiler cannot create executables
See `config.log' for more details
rolling back 8 file operations
ERROR: `/tmp/pear/temp/sqlsrv/configure --with-php-config=/usr/bin/php-config' failed

我想检查config.log以获得更详细的错误信息,但是/ tmp / pear / temp目录中的所有内容似乎都在尝试失败后立即被删除,包括日志。为了诊断错误,我尝试使用gcc构建以下C文件:

#include <stdio.h>
int main() { printf("hello world\n"); return 0; }

并收到同样奇怪的错误:

/usr/lib64/gcc/x86_64-suse-linux/8/../../../../x86_64-suse-linux/bin/ld: /usr/lib64/gcc/x86_64-suse-linux/8/../../../../lib64/crt1.o: unrecognized relocation (0x2a) in section `.text'
/usr/lib64/gcc/x86_64-suse-linux/8/../../../../x86_64-suse-linux/bin/ld: final link failed: Bad value
collect2: error: ld returned 1 exit status

在这一点上,我正式不知道该去哪里去尝试诊断这里实际发生的事情。

1 个答案:

答案 0 :(得分:0)

重定位0x2a是onClick,用于创建某些宽松的x86-64重定位(可以由链接器优化的重定位)。您至少需要使用binutils 2.26来处理这些目标文件。