2010-11-02 4 views
5

Dans ma source C++ non managé i ont:M_PI dans VS2010: travailler dans Debug mais pas dans conf de presse

#define _USE_MATH_DEFINES 
#include <cmath> 

puis je M_PI utiliser deux ou trois fois. dans la configuration de débogage Compiler fonctionne parfaitement, mais dans la version qu'il donne:

erreur C2065: 'M_PI': identificateur non déclaré

Quelle pourrait être la propriété de configuration cause?

Répondre

6

Résolu.

j'avais mis

#define _USE_MATH_DEFINES 

avant

#include "stdafx.h" 

avec en-têtes précompilés sur (/ Yu), comme il est en mode de sortie, tout ce qui précède, il est ignoré.

+0

dois aimer les en-têtes précompilés ... – jalf

1

Méfiez-vous des différences dans les configurations de débogage et de libération:

Le plus important:

  • comprennent des fichiers
  • définit
3

Le code suivant compile très bien à la fois le débogage et libérer pour moi:

#define _USE_MATH_DEFINES 
#include <cmath> 

int main(void) 
{ 
    double x = M_PI; 
    return 0; 
} 

Votre problème peut se trouver ailleurs dans votre code. Avez-vous une compilation conditionnelle n'importe où pour les modes de débogage ou de libération?

Questions connexes