无法在CentOS上编译C ++程序

时间:2015-02-13 06:03:31

标签: c linux unix centos rhel

我在./configure期间收到以下错误。

configure:3429: checking whether the C compiler works
configure:3451: gcc -m32 -D_FILE_OFFSET_BITS=64  -m32 conftest.c  >&5
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-redhat-linux/4.4.7/libgcc_s.so when searching for -lgcc_s
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-redhat-linux/4.4.7/libgcc_s.so when searching for -lgcc_s
/usr/bin/ld: cannot find -lgcc_s
collect2: ld returned 1 exit status
configure:3455: $? = 1
configure:3493: result: no

configure:3498: error: in `/root/cjk/1.x/src/externals/mecab':
configure:3500: error: C compiler cannot create executables

我已尝试过互联网上提到的几种解决方案,但无济于事。 我在机器上安装了完整的Developers包。 我也安装了glibc-devel.i686包。

1 个答案:

答案 0 :(得分:1)

我遇到了完全相同的问题(CentOS 6.5 x64,gcc 4.4.7)。我确保yum install glibc-devel.i686已执行。快速find / -name "libgcc_s.*"透露:

/lib64/libgcc_s.so.1
/usr/lib/gcc/x86_64-redhat-linux/4.4.4/32/libgcc_s.so
/usr/lib/gcc/x86_64-redhat-linux/4.4.4/libgcc_s.so

所以,也许您可​​以尝试使用建议here的解决方法:

  1. 在链接行上添加gcc_s库的绝对路径,或者
  2. (推荐)如果库的文件名附加了任何主要版本号和次要版本号,只需在同一位置创建指向库的软链接,而不包含目标文件名中的主要版本号和次要版本号。
  3. 我决定通过将-static添加到gcc调用来静态编译/链接我的应用程序。所以,

    gcc -static -m32 ...
    

    在这种情况下,请确保完成yum install glibc-static.i686