在过去的几个小时里,我一直不知所措,试图弄清楚发生了什么。我正在运行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
在这一点上,我正式不知道该去哪里去尝试诊断这里实际发生的事情。
答案 0 :(得分:0)
重定位0x2a是onClick
,用于创建某些宽松的x86-64重定位(可以由链接器优化的重定位)。您至少需要使用binutils 2.26来处理这些目标文件。