скрипт настройки выдает ошибки gcc

Я пытаюсь скомпилировать SDL-1.2.15 в Ubuntu 12.04

http://www.linuxfromscratch.org/blfs/view/svn/multimedia/sdl.html

Руководство по установке говорит, что мне нужно начать с вызова файла конфигурации. Глядя на комментарии, кажется, что это необходимо для создания make-файла для компиляции библиотеки. Итак, я начинаю с ввода:

sudo sh ./configure

На что я получаю следующее сообщение об ошибке:

checking build system type... i686-pc-linux-gnu
checking host system type... i686-pc-linux-gnu
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... configure: error: cannot run C compiled programs.
If you meant to cross compile, use `--host'.
See `config.log' for more details.

Я проверил файл журнала (см. Ниже), но не смог определить основную проблему. Есть какие-нибудь идеи о том, как действовать?


Этот файл содержит любые сообщения, сгенерированные компиляторами при запуске configure, чтобы помочь в отладке, если configure допустит ошибку.

Он был создан с помощью configure, который был сгенерирован GNU Autoconf 2.61. Вызов командной строки был

  $ ./configure 

## --------- ##
## Platform. ##
## --------- ##

hostname = ubuntu
uname -m = i686
uname -r = 3.2.0-24-generic-pae
uname -s = Linux
uname -v = #39-Ubuntu SMP Mon May 21 18:54:21 UTC 2012

/usr/bin/uname -p = unknown
/bin/uname -X     = unknown

/bin/arch              = unknown
/usr/bin/arch -k       = unknown
/usr/convex/getsysinfo = unknown
/usr/bin/hostinfo      = unknown
/bin/machine           = unknown
/usr/bin/oslevel       = unknown
/bin/universe          = unknown

PATH: /usr/local/sbin
PATH: /usr/local/bin
PATH: /usr/sbin
PATH: /usr/bin
PATH: /sbin
PATH: /bin


## ----------- ##
## Core tests. ##
## ----------- ##

configure:2136: checking build system type
configure:2154: result: i686-pc-linux-gnu
configure:2176: checking host system type
configure:2191: result: i686-pc-linux-gnu
configure:2261: checking for gcc
configure:2277: found /usr/bin/gcc
configure:2288: result: gcc
configure:2526: checking for C compiler version
configure:2533: gcc --version >&5
gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3
Copyright (C) 2011 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

configure:2536: $? = 0
configure:2543: gcc -v >&5
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/i686-linux-gnu/4.6/lto-wrapper
Target: i686-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro 4.6.3-1ubuntu5' --with-bugurl=file:///usr/share/doc/gcc-4.6/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.6 --enable-shared --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.6 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --enable-plugin --enable-objc-gc --enable-targets=all --disable-werror --with-arch-32=i686 --with-tune=generic --enable-checking=release --build=i686-linux-gnu --host=i686-linux-gnu --target=i686-linux-gnu
Thread model: posix
gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5) 
configure:2546: $? = 0
configure:2553: gcc -V >&5

gcc: error: unrecognized option '-V'

gcc: fatal error: no input files

compilation terminated.

configure:2556: $? = 4

configure:2579: checking for C compiler default output file name

configure:2606: gcc    conftest.c  >&5

configure:2609: $? = 0

configure:2647: result: a.out

configure:2664: checking whether the C compiler works

configure:2674: ./a.out

./configure: line 2675: ./a.out: Permission denied

configure:2677: $? = 126

configure:2686: error: cannot run C compiled programs.

If you meant to cross compile, use `--host'.
See `config.log' for more details.
0
задан 2 June 2012 в 19:03

2 ответа

Вы запустили скрипт конфигурации от имени пользователя root (через sudo). Он тестировал ваш компилятор и создал файл, который исполняется только пользователем root. Поэтому попытка выполнить его как обычного пользователя не удалась.

Обычно вам не нужен sudo при сборке программного обеспечения, используйте его только при установке.

Обновление: при ближайшем рассмотрении похоже, что вы запустили скрипт конфигурирования как минимум дважды: сначала с sudo, а затем без. Возможно, вы забыли очистить, так что есть устаревший файл .out, принадлежащий root и не исполняемый непривилегированным пользователем.

Обновление 2: основываясь на комментариях ниже, я должен добавить еще одно объяснение того, что произошло. Вы пытались скомпилировать ваш пакет в файловой системе, отличной от POSIX. Файловые системы, такие как FAT32, не хранят права доступа к файлам, поэтому вы не можете запустить ./configure, а скрипт не может запустить a.out для проверки работы вашего компилятора.

0
ответ дан 2 June 2012 в 19:03

Сначала установите необходимый пакет.

sudo apt-get install build-essential

, затем попробуйте

Если вы снова получите ошибку, попробуйте это

sudo ./configure

0
ответ дан 2 June 2012 в 19:03

Другие вопросы по тегам:

Похожие вопросы: