Титла: Error: c compiler cannot create executables Публикувано от: JaG_ в Feb 17, 2007, 01:03 Ползвам убунту-6.10-сървър версия
Инсталирал съм си build-essential и след като си сложих tcl8.4 се появи следната грешка когато configure с обикновен потребителски акаунт а не с root: checking for gcc... gcc checking for C compiler default output file name... configure: error: C compiler cannot create executables See `config.log' for more details. Някакви деи от какво е и как да се оправи? Титла: Error: c compiler cannot create executables Публикувано от: ivo1204 в Feb 17, 2007, 02:34 Не сьм с Убунту, на Дебиан сьм. Грешката е много обща , мога само да дам няколко идеи:
-Update и Upgrade пакетите.Всичко ли е наред? -Напиши си файл "test.c" : //file "test.c" void main () {}; // end file "test.c" и го компилирай: gcc -c test.c gcc test.o Дава ли грешки? -Отвори с някой пакетен менаджер /KPackage например / ,намети "libc6-dev","tcl8.4" "gcc","libstdc++xxx-dev" "g++" пакетите. Дали са инсталирани всичките ,виж на таб "файлове" ,дали не липсва някой ,с червена отметка е файла ,който липсва. -Ако няма нещо сьмнително , инсталирай някой пакет като: "qt3-dev-tools" "libtool" -Виж действително този `config.log' файл ,на края. Там може да видиш на кой ред на "configure" се е получила грешката.Файловете са големи ,може да изоползваш "тьрсене на текст"например в KWrite->Редактиране->Тьрсене на текст->"checking for C compiler default output file name" configure е направил неуспешна компилация на тестов файл някьде около този ред ... И това може да е грешно име на компилатора или библиотека. Имал сьм този проблем ,повече е било от неинсталирани или неправелно инсталирани програми . Например "cc" сочи грешен компилатор. Титла: Error: c compiler cannot create executables Публикувано от: JaG_ в Feb 17, 2007, 13:01 - Upgrade съм си всичко. С последните версии на build-essential съм. До скоро нямах проблем с това, но всичко стана след като тръгнах да слагам TCL. С root си компилирам всичко но с обикновен потребител на машината не мога.
user@ubuntu:~$ gcc -c test.c gcc: error trying to exec 'cc1': execvp: No such file or directory user@ubuntu:~$ gcc test.c gcc: error trying to exec 'cc1': execvp: No such file or directory - Ползвам убунту сървър версията и нямам графична среда за този пакетен мениджър - Инсталирах "qt3-dev-tools" и "libtool", като проблема пак остава същия, мога само с root или sudoer да компилирам но не и с обикновен потребител на машината. Мерси, че се отзова на проблема. Титла: Error: c compiler cannot create executables Публикувано от: ivo1204 в Feb 17, 2007, 16:23 Можеш да локализираш проблема с:
gcc -print-prog-name=cc1 като "root" ,при мен дава: #gcc -print-prog-name=cc1 /usr/lib/gcc/x86_64-linux-gnu/4.1.2/cc1 полезна команда е : strace gcc .... дава подробна информация каде и какво се тьрси при извикването на gcc . gcc -print-search-dirs Може да опиташ да експортиращ променливата : GCC_EXEC_PREFIX Има информация за тези променливи ,например: http://www.redhat.com/docs....es.html Ама ти си потьрси , това бе пьрвото ,което ми попадна. Титла: Error: c compiler cannot create executables Публикувано от: nikoni в Feb 17, 2007, 18:39 В config.log какво пише?
Титла: Error: c compiler cannot create executables Публикувано от: JaG_ в Feb 17, 2007, 19:06 $ sudo gcc -print-prog-name=cc1
/usr/lib/gcc/i486-linux-gnu/4.1.2/cc1 Относно тези променливи за които даде линк, никога не съм правил промени по gcc. Ето и config.log:
Кофтито е както споменах в предните си мнения, че с root няма проблем с компилирането, проблема е само за потребителските акаунти. Титла: Error: c compiler cannot create executables Публикувано от: nikoni в Feb 17, 2007, 20:00 Тук проблема е че няма програма cc1 (вероятно cc1 би трябвало да е cc).
Направи нещата, както обикновенно и дай config.log. B.T.W. При мен най-често това се слу4ва като дам CFLAGS="-O2 -march=athlon_xp" вместо, CFLAGS="-O2 -march=athlon-xp" Причината е видна :-) Титла: Error: c compiler cannot create executables Публикувано от: ivo1204 в Feb 18, 2007, 02:11 Не сьм обяснил точно какво имах в предвид:
"$ sudo gcc -print-prog-name=cc1" е добре ,да намериш кьде е сс1 ,ама какво дава не като роот? А с променливите да експортираш пьт преди да компилираш като потребител , да видиш дали няма да намери сс1 ,няма да правиш промени. gcc е обвивката ,командния шел грубо казано , а сс1 е компилатора. Защото подозирам ,че gcc не може да намери сс1.Друго сс1 няма права за изпьлнение от потребител. При мен: ls -l /usr/lib/gcc/x86_64-linux-gnu/4.1.2/cc1 -rwxr-xr-x 1 root root .................................. Има права за изпьлнение от потребител и група . Или го стартирай като потребител: $/usr/lib/gcc/i486-linux-gnu/4.1.2/cc1 --help Трябва да изпьлни командата. Друго , и strace като потребител: $ strace gcc test.c Ама е много информация за терминал.По добре : $ strace gcc test.c &>/test.log и ако можеш да прочетеш файла трябва да има нещо такова: ....................... ........................ stat("/usr/lib/gcc/x86_64-linux-gnu/4.1.2/cc1", {st_mode=S_IFREG|0755, st_size=5471000, ...}) = 0 access("/usr/lib/gcc/x86_64-linux-gnu/4.1.2/cc1", X_OK) = 0 ......................................................... С твоя пьт ,разбира се. Ето някой опций на gcc ,които могат да са полезни: http://cygwin.com/ml/cygwin/2003-02/msg01900.html като -dumpspecs, |