visual studio 2019中未定义"MAP_ANONYMOUS",带有linux的wind



我正在使用Visual Studio 2019和Ubuntu 20.04.3 LTS作为我的Windows Subsystem for Linux(WSL((WSL的安装是在这篇MS开发文章之后完成的(,甚至使用我的Visual Studio项目

Configuration Properties > General 
> Platform Toolset = GCC for Windows Subsystem for Linux

我得到

标识符"非对称映射";是未定义的

使用等程序

int main() {
int N = 5;
int* ptr = mmap(NULL, N * sizeof(int),
PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, 0, 0);
}

只有MAP_ANONYMOUS未定义,如何解决此问题?我试着通过访问VS项目的来更改C语言标准

Configuration Properties > C/C++ 
> All Options > C Language Standard = C11 (-std=gnu11)

根据该SO职位的建议。

如果您使用的是VS Code,只需转到下面的配置设置,在那里您可以看到c版本,并在此处输入图像描述。在下面的选项中选择gnu11和c++11。这将自动清除错误。

我一发布这个问题,就找到了解决方案。解决方案是通过正确设置C语言标准

Configuration Properties > C/C++ 
> All Options > C Language Standard = C11(GNU Dialect)(-std=gnu11)

这可以使用C语言标准下拉菜单进行选择。

最新更新