2010-11-02 10 views
5

W mojej niezarządzanego C++ źródła mam:M_PI w VS2010: praca w Debug conf ale nie w wersji

#define _USE_MATH_DEFINES 
#include <cmath> 

a następnie użyć M_PI kilka razy. Kompilacja w konfiguracji Debug działa bez zarzutu, ale w wydaniu daje:

błędu C2065: „M_PI”: identyfikator nielegalna

Co może być przyczyną tego właściwość konfiguracja?

Odpowiedz

6

Rozwiązany.

I włożył

#define _USE_MATH_DEFINES 

przed

#include "stdafx.h" 

z prekompilowanymi na nagłówki (/ Yu), jak to jest w trybie Release, wszystko powyżej to jest ignorowany.

+0

Muszę uwielbiać prekompilowane nagłówki ... – jalf

1

Uważaj na różnice w Debug konfiguracji i zwolnić:

Najważniejszym:

  • zawierać pliki
  • definiuje
3

Poniższy kod kompiluje się dobrze w obu debugowania i zwolnij dla mnie:

#define _USE_MATH_DEFINES 
#include <cmath> 

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

Twój problem może znajdować się w innym miejscu kodu. Czy masz kompilację warunkową w dowolnym miejscu dla trybów debugowania lub wydania?

Powiązane problemy