erro ao configurar o FFmpeg no CentOS: Falha de segmentação e o gcc não consegue criar um arquivo executável

0

Eu estou tentando compilar o FFmpeg no CentOS a partir do código-fonte. Eu fiz referência ao guia de compilação oficial ( link ) para o CentOS, passo a passo, e instalei as dependências listadas. Mas quando tentei configurar o FFmpeg, encontrei um problema como abaixo:

Aslinhasdeerro(1249~1270)noarquivoconfiguresão:

check_exec(){check_ld"cc" "$@" && { enabled cross_compile || $TMPE >> $logfile 2>&1; }
}

check_exec_crash(){
    log check_exec_crash "$@"
    code=$(cat)

    # exit() is not async signal safe.  _Exit (C99) and _exit (POSIX)
    # are safe but may not be available everywhere.  Thus we use
    # raise(SIGTERM) instead.  The check is run in a subshell so we
    # can redirect the "Terminated" message from the shell.  SIGBUS
    # is not defined by standard C so it is used conditionally.

    (check_exec "$@") >> $logfile 2>&1 <<EOF

O config.log mostra:

zscale_filter=yes
zscale_filter_deps=libzimg
mktemp -u XXXXXX
Ubjjqz
check_ld cc
check_cc
BEGIN /tmp/ffconf.rgbbriKe.c
    1   int main(void){ return 0; }
END /tmp/ffconf.rgbbriKe.c
gcc -I/home/vis/guangli/local/include -c -o /tmp/ffconf.LLalSg6X.o /tmp/ffconf.rgbbriKe.c
gcc -L/home/vis/guangli/local/lib -ldl -o /tmp/ffconf.G3SYKa9M /tmp/ffconf.LLalSg6X.o
C compiler test failed.

Meu sistema operacional é o CentOS x86_64, o gcc instalado no sistema é gcc-4.4.6, mas para compilar o FFmpeg com o gcc-4.8.2, eu adiciono GCC482_HOME/{bin,include} às variáveis de ambiente: PATH, C_INCLUDE_PATH correspondentemente.

    
por Beanocean 07.06.2017 / 17:15

1 resposta

1

Acontece (por razões ainda desconhecidas) que qualquer executável colocado em /tmp nos seus segfaults do sistema. Mesmo cp /bin/ls /tmp && cd /tmp && ./ls dá um ls aos segfaults. Mas se movido para o seu diretório home, então funciona.

Isso está quebrando o configure; a solução óbvia é criar um subdiretório de seu diretório inicial e configurar o TMPDIR para isso.

    
por 07.06.2017 / 20:49