2010-11-02 33 views
5

Trong C++ nguồn không được quản lý của tôi có:M_PI trong VS2010: làm việc trong Debug conf nhưng không phải trong phiên bản

#define _USE_MATH_DEFINES 
#include <cmath> 

và sau đó tôi sử dụng M_PI một vài lần. Biên soạn trong cấu hình gỡ lỗi hoạt động hoàn hảo nhưng trong phiên bản lần nó mang lại: C2065

lỗi: 'M_PI': định không khai báo

gì có thể là sở hữu cấu hình gây ra điều này?

Trả lời

6

Đã giải quyết.

tôi đã đưa

#define _USE_MATH_DEFINES 

trước

#include "stdafx.h" 

Với precompiled Headers trên (/ Yu), vì nó đang ở chế độ phát hành, tất cả mọi thứ ở trên nó sẽ bị bỏ qua.

+0

phải yêu tiêu đề được biên dịch trước ... – jalf

1

Coi chừng sự khác biệt trong cấu hình gỡ lỗi và phát hành:

quan trọng nhất:

  • bao gồm tập tin
  • định nghĩa
3

Các mã sau biên dịch tốt ở cả hai gỡ lỗi và phát hành cho tôi:

#define _USE_MATH_DEFINES 
#include <cmath> 

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

Sự cố của bạn có thể nằm ở nơi khác trong mã của bạn. Bạn có biên dịch có điều kiện ở bất cứ nơi nào để gỡ lỗi hoặc chế độ phát hành không?

Các vấn đề liên quan