configure script lançando erros do gcc

0

Estou tentando compilar o SDL-1.2.15 no Ubuntu 12.04

link

O guia de instalação diz que preciso começar chamando o arquivo de configuração. Observando os comentários, isso parece ser necessário para criar um makefile com o qual compilar a biblioteca. Então, começo digitando:

sudo sh ./configure

Para o qual recebo a seguinte mensagem de erro:

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.

Eu verifiquei o arquivo de log (veja abaixo), mas não consegui determinar o problema subjacente. Alguma idéia de como proceder?

Este arquivo contém todas as mensagens produzidas por compiladores executando configure, para ajudar a depurar se o configure cometer um erro.

Foi criado pelo configure, que foi gerado pelo GNU Autoconf 2.61. A linha de comando de invocação era

  $ ./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.
    
por Bluemoon88 02.06.2012 / 14:25

2 respostas

3

Você iniciou o script de configuração como root (via sudo). Ele estava testando seu compilador e criou um arquivo que é executável apenas pelo root. Portanto, uma tentativa de executá-lo como usuário normal falha.

Normalmente, você não precisa de sudo ao criar um software, use-o somente ao instalá-lo.

Atualização: após um exame mais detalhado, parece que você executou o script de configuração pelo menos duas vezes: primeiro com o sudo e depois sem. Você pode ter se esquecido de limpar, então há um arquivo a.out antigo pertencente ao root e não executável pelo usuário não privilegiado.

Update2: com base nos comentários abaixo, eu tenho que adicionar outra explicação para o que aconteceu. Você tentou compilar seu pacote em um sistema de arquivos não-POSIX. Sistemas de arquivos como o FAT32 não armazenam permissões de arquivos, e é por isso que você não pode executar ./configure e o script não pôde executar a.out para verificar se o seu compilador funciona.

    
por Vitalie Ciubotaru 02.06.2012 / 16:05
0

Primeiro instale o pacote essencial.

sudo apt-get instale o build-essential

tente

Se você receber um erro novamente, tente isso

sudo ./configure

    
por Shekhar Raut 02.06.2012 / 16:54