Автор Тема: Error: c compiler cannot create executables  (Прочетена 2929 пъти)

JaG_

  • Напреднали
  • *****
  • Публикации: 38
    • Профил
    • WWW
Error: c compiler cannot create executables
« -: 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.


Някакви деи от какво е и как да се оправи?
Активен

ivo1204

  • Напреднали
  • *****
  • Публикации: 987
    • Профил
Error: c compiler cannot create executables
« Отговор #1 -: 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" сочи грешен компилатор.



Активен

JaG_

  • Напреднали
  • *****
  • Публикации: 38
    • Профил
    • WWW
Error: c compiler cannot create executables
« Отговор #2 -: 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 да компилирам но не и с обикновен потребител на машината.


Мерси, че се отзова на проблема.
Активен

ivo1204

  • Напреднали
  • *****
  • Публикации: 987
    • Профил
Error: c compiler cannot create executables
« Отговор #3 -: 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
Ама ти си потьрси , това бе пьрвото ,което ми попадна.



Активен

nikoni

  • Напреднали
  • *****
  • Публикации: 40
  • Distribution: Slackware
  • Window Manager: Gnome
    • Профил
Error: c compiler cannot create executables
« Отговор #4 -: Feb 17, 2007, 18:39 »
В config.log какво пише?
Активен

JaG_

  • Напреднали
  • *****
  • Публикации: 38
    • Профил
    • WWW
Error: c compiler cannot create executables
« Отговор #5 -: Feb 17, 2007, 19:06 »
$ sudo gcc -print-prog-name=cc1
/usr/lib/gcc/i486-linux-gnu/4.1.2/cc1

Относно тези променливи за които даде линк, никога не съм правил промени по gcc.

Ето и config.log:

Цитат

.....

configure:1753: checking for C compiler default output file name
configure:1756: gcc    conftest.c  >&5
gcc: error trying to exec 'cc1': execvp: No such file or directory
configure:1759: $? = 1
configure: failed program was:
| /* confdefs.h.  */
|
| #define PACKAGE_NAME "Eggdrop"
| #define PACKAGE_TARNAME "eggdrop"
| #define PACKAGE_VERSION "1.6.18"
| #define PACKAGE_STRING "Eggdrop 1.6.18"
| #define PACKAGE_BUGREPORT "bugs@eggheads.org"
| /* end confdefs.h.  */
|
| int
| main ()
| {
|
|   ;
|   return 0;
| }
configure:1798: error: C compiler cannot create executables
See `config.log' for more details.

.......




Кофтито е както споменах в предните си мнения, че с root няма проблем с компилирането, проблема е само за потребителските акаунти.



Активен

nikoni

  • Напреднали
  • *****
  • Публикации: 40
  • Distribution: Slackware
  • Window Manager: Gnome
    • Профил
Error: c compiler cannot create executables
« Отговор #6 -: Feb 17, 2007, 20:00 »
Тук проблема е че няма програма cc1 (вероятно cc1 би трябвало да е cc).
Направи нещата, както обикновенно и дай config.log.

B.T.W. При мен най-често това се слу4ва като дам
CFLAGS="-O2 -march=athlon_xp" вместо,
CFLAGS="-O2 -march=athlon-xp"
Причината е видна :-)
Активен

ivo1204

  • Напреднали
  • *****
  • Публикации: 987
    • Профил
Error: c compiler cannot create executables
« Отговор #7 -: 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,
Активен

Подобни теми
Заглавие Започната от Отговора Прегледи Последна публикация
C compiler cannot create executables.
Настройка на програми
xPucTu4 6 3044 Последна публикация Aug 19, 2004, 23:05
от vladou
create pdf files
Настройка на програми
prilep 2 2220 Последна публикация Dec 28, 2004, 17:30
от mikis
Gcc error: c compiler cannot create executables
Настройка на програми
m0x_vr 6 2416 Последна публикация Sep 15, 2006, 14:02
от divak
Internal compiler error: segmentation fault: 11
Системни настройки
bILLY 4 3080 Последна публикация Jun 10, 2008, 10:00
от bILLY
GNU Video FX - Create 3D transitions => къде е проблема?
Настройка на програми
zlatena 7 3487 Последна публикация Jan 20, 2014, 00:07
от zlatena