настроить скрипт, перебрасывающий 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 в 20:03

14 ответов

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

sudo apt-get install build-essential

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

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

sudo ./configure

0
ответ дан 25 July 2018 в 18:40

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

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

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

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

3
ответ дан 25 July 2018 в 18:40

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

sudo apt-get install build-essential

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

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

sudo ./configure

0
ответ дан 2 August 2018 в 00:50

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

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

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

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

3
ответ дан 2 August 2018 в 00:50

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

sudo apt-get install build-essential

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

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

sudo ./configure

0
ответ дан 4 August 2018 в 16:20

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

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

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

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

3
ответ дан 4 August 2018 в 16:20

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

sudo apt-get install build-essential

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

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

sudo ./configure

0
ответ дан 6 August 2018 в 00:58

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

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

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

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

3
ответ дан 6 August 2018 в 00:58

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

sudo apt-get install build-essential

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

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

sudo ./configure

0
ответ дан 7 August 2018 в 18:24

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

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

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

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

3
ответ дан 7 August 2018 в 18:24

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

sudo apt-get install build-essential

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

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

sudo ./configure

0
ответ дан 10 August 2018 в 07:07

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

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

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

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

3
ответ дан 10 August 2018 в 07:07

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

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

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

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

3
ответ дан 15 August 2018 в 19:06
  • 1
    Спасибо за ваш ответ! Ваш ответ определенно правдоподобен, но я не могу найти файлы a.out для удаления. – Bluemoon88 2 June 2012 в 20:24
  • 2
    Я просто удалил всю структуру каталогов, переустановил ее и набрал sh ./configure. Все та же проблема. – Bluemoon88 2 June 2012 в 21:10
  • 3
    Здесь есть два момента. Во-первых, вы регистрируетесь, что a.out был создан, но не может быть выполнен из-за недостаточных разрешений. Во-вторых, очень странно, что вы не можете запустить ./configure. Это верно для любого скрипта / приложения? Это может быть ключом к тому, почему у вас возникла эта проблема. – Vitalie Ciubotaru 2 June 2012 в 21:21
  • 4
    Нет, только это приложение. Ответ лежит в той теме, которую я начал вчера, когда я ответил на свой вопрос. Может быть, вы можете понять это лучше меня: askubuntu.com/questions/144785/… – Bluemoon88 2 June 2012 в 21:32
  • 5
    – Bluemoon88 2 June 2012 в 21:36

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

sudo apt-get install build-essential

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

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

sudo ./configure

0
ответ дан 15 August 2018 в 19:06
  • 1
    Я пробовал то, что вы предлагали, но build-essential - это уже самая новая версия. ./configure не работает вообще, мне нужно сделать sh ./configure. – Bluemoon88 2 June 2012 в 20:55
  • 2
    Gcc уже установлен с этого выхода checking for gcc... gcc – daisy 4 June 2012 в 07:53

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

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