在Cygwin中处理“C编译器无法创建可执行文件”

时间:2009-01-20 15:17:51

标签: c++ gcc compiler-construction cygwin g++

无论我尝试在Cygwin中编译什么,我都得到以下输出:

checking for mingw32 environment... no
checking for EMX OS/2 environment... no
checking how to run the C preprocessor... gcc -E
checking for gcc... gcc
checking whether the C compiler (gcc   ) works... no
configure: error: installation or configuration problem: C compiler cannot creat
e executables.

日志文件的最后几行如下所示:

configure:2810: checking for EMX OS/2 environment
configure:2822: gcc -c   conftest.c 1>&5
configure: In function `main':
configure:2818: error: `__EMX__' undeclared (first use in this function)
configure:2818: error: (Each undeclared identifier is reported only once
configure:2818: error: for each function it appears in.)
configure: failed program was:
#line 2815 "configure"
#include "confdefs.h"

int main() {
return __EMX__;
; return 0; }
configure:2838: checking how to run the C preprocessor
configure:2859: gcc -E  conftest.c >/dev/null 2>conftest.out
configure:2943: checking for gcc
configure:3056: checking whether the C compiler (gcc   ) works
configure:3072: gcc -o conftest    conftest.c -llib 1>&5
/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../i686-pc-cygwin/bin/ld: cannot find
 -llib
collect2: ld returned 1 exit status
configure: failed program was:

#line 3067 "configure"
#include "confdefs.h"

main(){return(0);}

这是一个新的Cygwin安装,带有G ++和一些其他的devtools。知道我需要做些什么才能使这个东西工作?

更新0:Nick,您已经尝试了http://www.geektimes.com/linux/troubleshooting/c-cant-create-executables.html的链接 - 很遗憾,这些说明适用于redhat,似乎不适用于cygwin。

3 个答案:

答案 0 :(得分:3)

您的配置错误。 通常autoreconf -f有帮助。如果不是,您需要检查失败的规则并进行修复。

答案 1 :(得分:2)

'-llib'对我来说似乎有点不寻常,但我远非专家。只是出于好奇而安装了autoconf?在安装autoconf之前,我遇到了类似的问题。似乎配置脚本错误地生成了'-llib'值,但很难说基于所发布的片段的原因。

答案 2 :(得分:1)

当我遇到此问题时,由于Cygwin正在寻找“library.o”而不是“library.obj”或“library.so”而不是“library.dll”而导致链接错误。