Я пытаюсь скомпилировать 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.
Вы запустили скрипт конфигурации от имени пользователя root (через sudo). Он тестировал ваш компилятор и создал файл, который исполняется только пользователем root. Поэтому попытка выполнить его как обычного пользователя не удалась.
Обычно вам не нужен sudo при сборке программного обеспечения, используйте его только при установке.
Обновление: при ближайшем рассмотрении похоже, что вы запустили скрипт конфигурирования как минимум дважды: сначала с sudo, а затем без. Возможно, вы забыли очистить, так что есть устаревший файл .out, принадлежащий root и не исполняемый непривилегированным пользователем.
Обновление 2: основываясь на комментариях ниже, я должен добавить еще одно объяснение того, что произошло. Вы пытались скомпилировать ваш пакет в файловой системе, отличной от POSIX. Файловые системы, такие как FAT32, не хранят права доступа к файлам, поэтому вы не можете запустить ./configure
, а скрипт не может запустить a.out для проверки работы вашего компилятора.
Сначала установите необходимый пакет.
, затем попробуйте
Если вы снова получите ошибку, попробуйте это