Je travaillais avec math.h sans problème. Maintenant, j'utilise une bibliothèque externe qui elle-même a un fichier appelé math.h
, mais qui comprend < cmath>
.cmath.h et compiler les erreurs
L'ajout de cette bibliothèque à mon projet (ou même simplement d'ajouter le répertoire include, sans toucher le code) génère maintenant des tonnes d'erreurs de < cmath>
:
C: \ Program Files \ Microsoft Visual Studio 8 \ VC \ include \ cmath (18): erreur C2039: 'acosf': n'est pas membre de '' global namespace ''
C: \ Program Files \ Microsoft Visual Studio 8 \ VC \ include \ cmath (18): erreur C2873: 'acosf': le symbole ne peut pas être utilisé dans une déclaration d'utilisation
C: \ Program Files \ Micr osoft Visual Studio 8 \ VC \ include \ cmath (18): erreur C2039: 'asinf': n'est pas membre de '' global namespace ''
C: \ Program Files \ Microsoft Visual Studio 8 \ VC \ include \ cmath (18): erreur C2873: 'asinf': symbole ne peut pas être utilisé dans une déclaration à l'aide-
[etc, etc ...]
Je ne comprends pas pourquoi cela se produit. J'utilise Visual Studio 2005 et en regardant sur Internet, il semble que ce problème est résolu sous VS 2008. Cependant, je voudrais rester sur VS 2005 ...
Y compris partout, ou en changeant l'ordre de mes inclusions ne semblent pas changer quoi que ce soit. Définir _STD_BEGIN
résout l'erreur, mais en produire autant en < xlocinfo>
.
Comment cela peut-il être résolu?
cmath est censé être utilisé à partir du code C++. Incluez-vous cet en-tête d'un fichier C? –
en effet un de mes fichiers dans mon projet est en C et inclus avec extern "C". Il inclut "math.h" qui se trouve alors dans le répertoire include de ma bibliothèque externe, et inclut implicitement cmath - je ne sais donc pas comment corriger cela. Cependant, ces erreurs de compilation semblent se produire encore plus tôt dans mon code, avant de compiler ce code C. – WhitAngl
changer cette partie particulière du code C en C++ ne semble pas changer toutes les erreurs de compilation de cmath si ... – WhitAngl