首页 > 解决方案 > “名称后跟'::'必须是类或命名空间名称”在发布模式但不是调试模式下出错

问题描述

C++、Visual Studio 2019

对于使用“文件系统”和“chrono”库的行,我在发布模式下不断收到此错误,但在调试模式下却没有。我认为这个问题可能与头文件在发布模式下的链接方式有关。

以下是我的代码的相关片段(省略号表示省略的代码)。错误的红色下划线分别位于“chrono”和“filesystem”下。

#include <iostream>
#include <vector>
#include <fstream>
#include <numeric>
#include <string>
#include <algorithm>
#include <ctime>
#include <iterator>
#include <filesystem>
#include <cmath>
using namespace std; 

...

int main() {
    auto startTime = chrono::steady_clock::now();  // ERROR HERE

    ...

    for (auto& entry : filesystem::directory_iterator(AbsPath + PTS_ByIndustry_Path)) { // ERROR HERE
        if (find(TS_ToIncludeNums.begin(), TS_ToIncludeNums.end(), i) != TS_ToIncludeNums.end()) {
            string p = entry.path().u8string();
            PTS_ToInclude.push_back(p);
        }
        i++;
    }

    ...
}

标签: c++visual-studio-2019

解决方案


已经修好了!在项目属性中,我将调试模式的语言标准更改为 C++17,而不是发布模式。

截图: 截屏


推荐阅读