Como posso verificar se o FFTW foi instalado corretamente?

0

Eu tentei instalar o FFTW no meu sistema (Ubuntu 12.04) usando as instruções pouco claras no site , e agora quero verificar se funcionou. ( FFTW é uma biblioteca de subrotinas C para calcular a transformada discreta de Fourier em uma ou mais dimensões.) No site:

You can also type "make check" to put the FFTW test programs through their paces.

O problema é que o site não diz como a saída deve ser. Eu tentei isso e a saída foi um monte de linhas como

Executing "/home/petur/fftw-3.3.4/tests/bench -o nthreads=2 --verbose=1   --verify 'ok10bx6bx6e11x13b' --verify 'ik10bx6bx6e11x13b' --verify 'obrd7x13v16' --verify 'ibrd7x13v16' --verify 'ofrd7x13v16' --verify 'ifrd7x13v16' --verify '//obcd7x13v16' --verify '//ibcd7x13v16' --verify '//ofcd7x13v16' --verify '//ifcd7x13v16' --verify 'obcd7x13v16' --verify 'ibcd7x13v16' --verify 'ofcd7x13v16' --verify 'ifcd7x13v16' --verify 'okd10bv127' --verify 'ikd10bv127' --verify '//obr240' --verify '//ibr240' --verify '//ofr240' --verify '//ifr240' --verify 'obr240' --verify 'ibr240' --verify 'ofr240' --verify 'ifr240' --verify '//obc240' --verify '//ibc240' --verify '//ofc240' --verify '//ifc240' --verify 'obc240' --verify 'ibc240' --verify 'ofc240' --verify 'ifc240' --verify 'ok11760e00' --verify 'ik11760e00' --verify 'obr33v31' --verify 'ibr33v31' --verify 'ofr33v31' --verify 'ifr33v31' --verify '//obc33v31' --verify '//ibc33v31' --verify '//ofc33v31' --verify '//ifc33v31' --verify 'obc33v31' --verify 'ibc33v31'"

cada seguido por dezenas de linhas como

ok10bx6bx6e11x13b 1.5604e-07 1.85166e-05 1.52953e-07

que não me diz muito. O programa me notificou que o "FFTW transforma testes básicos passados" e que "transformações encadeadas FFTW passaram em testes básicos".

Isso é suficiente para saber que o FFTW foi instalado com sucesso?

Não sei se é relevante, mas verifiquei o conteúdo de ~/fftw-3.3.4/config.log e ele contém algumas linhas que sugerem que houve alguns erros, por exemplo:

conftest.c:88:24: error: expected expression before ')' token
conftest.c:118:18: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'newvar'

Acho que devo mencionar também que /usr/local/lib/ agora contém os arquivos

libfftw3f.a  libfftw3f.la  libfftw3f_threads.a  libfftw3f_threads.la

Isso significa que posso remover o diretório ~/fftw-3.3.4 ou ainda é necessário?

    
por Pétur 15.06.2015 / 11:43

1 resposta

4

Para verificar se uma biblioteca está instalada corretamente, você normalmente tentaria criar um programa usando-a.

make check executa testes na árvore de compilação, não nos arquivos instalados. No seu caso eles passaram, o que é bom, mas não é suficiente para garantir que você será capaz de construir software usando o FFTW.

A presença dos arquivos listados em /usr/local/lib indica que você poderá vincular os programas estaticamente com o FFTW. Eu esperaria que houvesse .so arquivos também, mas talvez a compilação tenha decidido que não poderia construir bibliotecas compartilhadas (ou elas precisam ser explicitamente ativadas).

É normal ver erros em config.log , o processo configure realiza várias verificações e espera-se que algumas delas falhem. Se o processo global for bem sucedido, então você está bem.

Quando o software estiver instalado, é seguro excluir a pasta usada para criá-lo, para que você possa remover ~/fftw-3.3.4 . Geralmente é uma boa idéia manter o arquivo fonte, então você pode desinstalar o pacote mais tarde ( ./configure && sudo make uninstall ).

Como Faheem menciona que seria muito mais simples para você

sudo apt-get install libfftw3-dev
    
por 15.06.2015 / 12:00