簡體   English   中英

VS2010 中的 M_PI:在 Debug conf 中工作,但不在 Release 中

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM