[英]M_PI in VS2010: working in Debug conf but not in Release
在我的非托管 C++ 源中,我有:
#define _USE_MATH_DEFINES
#include <cmath>
然后我使用 M_PI 幾次。 在 Debug 配置中編譯完美無缺,但在 Release 中它提供:
錯誤 C2065:“M_PI”:未聲明的標識符
導致這種情況的配置屬性可能是什么?
解決了。
我放了
#define _USE_MATH_DEFINES
之前
#include "stdafx.h"
使用預編譯標題(/ Yu),因為它處於發布模式,其上方的所有內容都將被忽略。
以下代碼在我的調試和發布中編譯得很好:
#define _USE_MATH_DEFINES
#include <cmath>
int main(void)
{
double x = M_PI;
return 0;
}
您的問題可能在您的代碼中的其他位置。 在調試或發布模式的任何地方都有條件編譯嗎?
注意配置調試和發布的差異:
最重要的:
我對預編譯的 header 也有同樣的問題。 在發布模式下,確保創建了 pch.cpp 預編譯 header (/Yc)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.