sách gpt4 ai đã đi

c++ - 如何在 VS2019 CUDA 项目中启用 C++17 代码生成

In lại 作者:行者123 更新时间:2023-12-05 02:06:01 28 4
mua khóa gpt4 Nike

我正在将一些代码从一台电脑上的 VS2017 转移到另一台装有 VS2019 的电脑上。一切都很好,除了我不能使用 std::filesystem。在我以前的代码中,我使用的是 C++14 并且有 std::experimental::filesystem。在新代码中,我想转到 C++17,所以我更改为 std::filesystem(如下面的代码所示)。奇怪的是,intellisense(不确定它是正确的名称)没有显示错误。当我键入 std::f 时,它甚至会显示文件系统...

nhập mô tả hình ảnh ở đây

但代码不会构建并给出错误“命名空间“std”没有成员“文件系统””。

我把C++ Language Standard改成了c++latest,VS2019版本是Community 16.6.5。

#include 
#include
#include
namespace fs = std::filesystem;

int chính()
{
std::string path = "C:\\";
for (const auto& entry : fs::directory_iterator(path))
std::cout << entry.path() << std::endl;
}

编辑:我最初问题的最后一行可能不够清楚:我已经将“C++ 语言标准”更改为 C++17 或 C++ 最新版本。

编辑:根据要求,输出: nhập mô tả hình ảnh ở đây

感谢@drescherjm,我们发现这是一个 Cuda 问题。 Cuda 专家有什么想法吗?

1 Câu trả lời

使用 CUDA 11,nvcc 编译器驱动程序能够支持 certain C++17 language features 的使用.目前,在 VS2019 中,这似乎不是默认行为。

在 VS2019 中编译 cuda 项目时,以下方法应该可以启用 C++17 支持:

转到 Project..Properties..Configuration Properties...CUDA C/C++...Command Line 然后您将在对话框的右侧底部看到一个标有“其他选项”的框。在该框中,键入以下内容:

-std=c++17 -Xcompiler "/std:c++17"

然后单击“应用”然后重建。 Project Properties

(对于 future 版本的 CUDA 或 future 版本的 Visual Studio,这些说明可能会发生变化。)

请注意,此方法仅适用于 CUDA 项目(即调用 nvcc 进行编译时),并且无论您的代码是否在以 .cpp 结尾的文件中,都应该可行> 或以 .cu 结尾的文件中。对于非 CUDA 项目,cái này可能会有帮助。

std::filesystem 功能似乎需要 C++17。 CUDA nvcc 编译器驱动程序已记录 đây .

关于c++ - 如何在 VS2019 CUDA 项目中启用 C++17 代码生成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63036624/

28 4 0
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com