Работа с "компилятором C не может создавать исполняемые файлы" в Cygwin - PullRequest
4 голосов
/ 20 января 2009

Что бы я ни пытался скомпилировать в 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: Ник, ваша ссылка на http://www.geektimes.com/linux/troubleshooting/c-cant-create-executables.html уже опробована - к сожалению, эта инструкция для redhat и, похоже, не относится к cygwin.

Ответы [ 3 ]

3 голосов
/ 30 мая 2011

Ваша конфигурация неверна. Обычно autoreconf -f помогает. Если нет, вам нужно проверить ошибочное правило и исправить его.

2 голосов
/ 20 января 2009

Мне кажется, что -llib немного необычен, но я далеко не эксперт. Просто из любопытства установлен autoconf? У меня были некоторые проблемы, подобные этому, пока я не установил autoconf. Кажется, что скрипт configure неправильно генерирует значение '-llib', но трудно сказать, почему, основываясь только на опубликованных фрагментах.

1 голос
/ 21 января 2009

Когда у меня возникла эта проблема, это была ошибка связи, вызванная тем, что Cygwin ищет «library.o» вместо «library.obj» или «library.so» вместо «library.dll».

...