“Cmath: aucun fichier ou répertoire de ce type” lors de la compilation avec GCC

J’ai écrit le programme simple dans Linux Ubuntu , quand j’utilise g ++ il n’y a pas d’erreur mais quand j’utilise gcc je vois cette erreur:

test.c:1:17: fatal error: cmath: No such file or directory #include  

Note: “En fait, je vois cette erreur dans la compilation du paquet, j’ai pensé que cela pourrait être lié à la bibliothèque gcc qui n’est pas définie sur l’environnement Linux, donc j’ai écrit le programme simple pour déterminer l’erreur clairement et sans dépendance!” donc le programme devrait comstackr avec gcc pour que je puisse surmonter le problème principal. Je dis que je peux utiliser math.h au lieu de cmath, mais le paquet a utilisé le cmath! c’est le programme simple:

  /*test.c*/ #include  #include  #include  #include  using namespace std; int main(){ double sinx = sin(3.14/3); cout<< "sinx= " << sinx; return 0; } 

voici les chemins de 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 

et après avoir installé gcc-4.8 j’ai fait cette instruction:

 root@geant4:~/Desktop# update-alternatives --install /usr/bin/gcc gcc /app/gcc/4.8.0/bin/gcc 40 --slave /usr/bin/g++ g++ /app/gcc/4.8.0/bin/g++ root@geant4:~/Desktop#update-alternatives --install /usr/bin/gcc gcc /app/gcc/4.8.0/bin/gcc 60 --slave /usr/bin/g++ g++ /app/gcc/4.8.0/bin/g++ root@geant4:~/Desktop# update-alternatives --config gcc 

pour faire de gcc-4.8 mon gcc par défaut.

à présent

 root@geant4:~/Desktop# gcc --version gcc (GCC) 4.8.0 Copyright (C) 2013 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. 

En fait, j’ai écrit le problème principal dans https://askubuntu.com/questions/309195/cmath-no-such-file-or-directory-include-cmath

Aidez-moi, s’il vous plaît
Je ne sais pas quoi faire.
Merci

Comstackz les fichiers source C ++ avec g ++, pas avec gcc.

Quelques bases ::

 GCC:: GNU Comstackr Collection G++:: GNU C++ Comstackr 

Les deux sont des pilotes qui appellent les compilateurs selon les besoins.

Effacer vos doutes ::

Le problème avec GCC est qu’il ne lie pas par défaut les bibliothèques std C ++ comme le fait G++ . GCC n’est qu’un front-end. Le compilateur réel est cc1plus. Il est donc toujours conseillé d’utiliser G++ lors de la compilation de fichiers C ++. Le résultat peut être identique avec GCC et G++ si vous connaissez les arguments exacts pour les lier. Vous pouvez trouver ce lien utile.

Mais si vous souhaitez toujours utiliser GCC , utilisez-le avec l’option -lstdc++ à la fin de la commande. Cette option d’éditeur de liens est ajoutée par défaut lorsque vous utilisez G++ . Vous pouvez le vérifier en compilant votre code en utilisant l’option GCC avec l’option -### et cela vous montrera que l’option -lstdc++ est manquante.