cmath: Nenhum arquivo ou diretório #include cmath

0

Eu baixei e tentei instalar o pacote "wfconvert" de este link . mas eu tenho algum erro.

aqui o que eu fiz:

  1. copie a pasta wfconvert na raiz "/"
  2. cd /wfconvert/build/

    root@geant4:/wfconvert/build# cmake ..
    
    -- Current revision : 65 modified on 2013-01-16 22:14:53 +0330 (Wed, 16 Jan 2013)  
    -- Found mpi.h and libraries. Check for working mpi compiler  
    -- MPI is disabled  
    -- Failed to link LAPACK, BLAS, ATLAS libraries with environments. Going to search standard paths.  
    -- LAPACK_LIBRARIES=/usr/lib/liblapack.so  
    -- BLAS_LIBRARIES=/usr/lib/libblas.so  
    -- CXX compiler flags:  -g -O3 -ftemplate-depth-60 -Drestrict=__restrict__ -funroll-all-loops   -finline-limit=1000 -Wno-deprecated  -mmmx -msse -msse2 -msse3 -fopenmp  
    -- CC  compiler flags:  -O3 -Drestrict=__restrict__ -funroll-all-loops   -finline-limit=1000 -std=gnu99 -fomit-frame-pointer  -mmmx -msse -msse2 -msse3  
    -- LIBXML2_INCLUDE_DIR=/usr/include/libxml2  
    -- LIBXML2_LIBRARIES=/usr/lib/libxml2.so  
    -- HDF5_INCLUDE_DIR=/usr/include  
    -- HDF5_LIBRARIES=/usr/lib/libhdf5.so  
    -- FFTW_INCLUDE_DIR=/usr/include  
    -- FFTW_LIBRARIES=/usr/lib/libfftw3.so  
    -- Ready to build qmcpack  
    -- Configuring done  
    -- Generating done  
    -- Build files have been written to: /wfconvert/build  
    
  3. faça o comando

    root@geant4:/wfconvert/build# make
    
    [  1%] Building C object src/einspline/CMakeFiles/einspline.dir/bspline_create.c.o  
    In file included from /wfconvert/src/einspline/bspline_base.h:24:0,  
             from /wfconvert/src/einspline/bspline_create.h:24,  
             from /wfconvert/src/einspline/bspline_create.c:21:  
    /wfconvert/build/src/Common/config.h:65:17: fatal error: cmath: No such file or directory  
     #include <cmath> 
             ^
    compilation terminated.    
    make[2]: *** [src/einspline/CMakeFiles/einspline.dir/bspline_create.c.o] Error 1  
    make[1]: *** [src/einspline/CMakeFiles/einspline.dir/all] Error 2  
    make: *** [all] Error 2  
    

Eu não sei o que fazer!
aqui está minha lista de arquivos cmath:

root@geant4:/# find -name cmath
./opt/root5.32.00/cint/cint/include/cmath
./app/gcc/4.8.0/include/c++/4.8.0/ext/cmath
./app/gcc/4.8.0/include/c++/4.8.0/cmath
./app/gcc/4.8.0/include/c++/4.8.0/tr1/cmath
./usr/include/boost/compatibility/cpp_c_headers/cmath
./usr/include/boost/tr1/tr1/cmath
./usr/include/c++/4.5/cmath
./usr/include/c++/4.5/tr1_impl/cmath
./usr/include/c++/4.5/tr1/cmath
./usr/include/c++/4.6/cmath
./usr/include/c++/4.6/tr1/cmath
./usr/share/gccxml-0.9/GCC/2.95/cmath
./gcc-build/gcc-4.8.0/stage1-i686-pc-linux-gnu/libstdc++-v3/include/ext/cmath
./gcc-build/gcc-4.8.0/stage1-i686-pc-linux-gnu/libstdc++-v3/include/cmath
./gcc-build/gcc-4.8.0/stage1-i686-pc-linux-gnu/libstdc++-v3/include/tr1/cmath
./gcc-build/gcc-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/cmath
./gcc-build/gcc-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/cmath
./gcc-build/gcc-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/tr1/cmath
./gcc-build/gcc-4.8.0/libstdc++-v3/include/ext/cmath
./gcc-build/gcc-4.8.0/libstdc++-v3/include/c/cmath
./gcc-build/gcc-4.8.0/libstdc++-v3/include/c_global/cmath
./gcc-build/gcc-4.8.0/libstdc++-v3/include/c_std/cmath
./gcc-build/gcc-4.8.0/libstdc++-v3/include/tr1/cmath
./gcc-build/gcc-4.8.0/libstdc++-v3/testsuite/26_numerics/headers/cmath
./gcc-build/gcc-4.8.0/libstdc++-v3/testsuite/tr1/8_c_compatibility/cmath
./gcc-build/gcc-4.8.0/prev-i686-pc-linux-gnu/libstdc++-v3/include/ext/cmath
./gcc-build/gcc-4.8.0/prev-i686-pc-linux-gnu/libstdc++-v3/include/cmath
./gcc-build/gcc-4.8.0/prev-i686-pc-linux-gnu/libstdc++-v3/include/tr1/cmath

e

root@geant4:/# uname -a
Linux geant4 3.0.0-32-generic-pae #51-Ubuntu SMP Thu Mar 21 16:09:48 UTC 2013 i686 i686 i386 GNU/Linux

Por favor me ajude.

    
por alireza yousefi 17.06.2013 / 13:04

3 respostas

0

Eu suspeito de instalação corrupta de ferramentas de desenvolvimento ou algo parecido. A primeira coisa que eu faria é re instalar o pacote de compilação

sudo apt-get purge build-essential
sudo apt-get install build-essential

Se o problema persistir, volte a postá-lo

Apenas curioso: Como você instalou o GCC 4.8? Eu tenho 13,04 e tem 4.7.3 Então, isso pode ser um problema se não foi feito corretamente!

    
por Stefano Mtangoo 17.06.2013 / 13:09
0

A libm também está vinculada automaticamente durante a compilação?

O libm é para o compilador g ++ e é automaticamente vinculado. Se você usa o gcc como compilador, você precisa se conectar manualmente com math.h

Eu encontrei este link aqui sobre diferentes compiladores em geral:

link

A propósito, há o link

Você também pode compilar e incluir com bibliotecas boost.

    
por dschinn1001 17.06.2013 / 14:15
0

Com o gcc, parece isso:

gcc example.c -o example -lm   

para uma compilação mais precisa (com saída de depuração em caso de falhas):

gcc -ggdb -Wall example.c -o example -lm

lm é aqui a ligação com a biblioteca matemática do gcc (há #include math.h no início do exemplo.c).

    
por dschinn1001 18.06.2013 / 19:21

Tags