C++ 如何在Visual Studio 2017中为Linux应用程序启用多线程

C++ 如何在Visual Studio 2017中为Linux应用程序启用多线程,c++,linux,multithreading,visual-studio-2017,C++,Linux,Multithreading,Visual Studio 2017,我目前正在VS2017中为Linux开发一个多线程应用程序 作为远程Linux机器,我在Windows中使用内置的Ubuntu bash,这是周年更新的一部分 编译进展顺利,构建成功。但在运行程序后,立即发生以下错误 terminate called after throwing an instance of 'std::system_error' what(): Enable multithreading to use std::thread: Operation not permi

我目前正在VS2017中为Linux开发一个多线程应用程序

作为远程Linux机器,我在Windows中使用内置的Ubuntu bash,这是周年更新的一部分

编译进展顺利,构建成功。但在运行程序后,立即发生以下错误

  terminate called after throwing an instance of 'std::system_error'
  what():  Enable multithreading to use std::thread: Operation not permitted
我试图摆弄链接和编译设置。但我把整个项目搞砸了

有没有人遇到并解决过这种问题?谢谢


编辑:此线程被标记为重复。让我解释一下为什么我认为这是不同的。我正在使用VS2017在Windows主机上开发,我正在尝试在VS2017中实现工作调试。我不能像建议的重复线程那样直接编辑编译例程命令。

我知道@Andrey Turkin已经在评论中给出了答案。我想在这里添加它作为答案,因为不是所有人都会阅读评论。我已经找了两天了,@Andrey Turkin帮我解决了这个问题。请按照他的意见来解决这个问题


假设平台工具集为“远程\u GCC\u 1\u 0”;您只需添加“-pthread”来编译和链接命令行。VS配置将大多数g++选项映射到特定的配置值,但不是这个。转到项目的配置,“C/C++->所有选项”,将“-pthread”添加到“附加选项”配置值。转到“链接器->所有选项”并执行相同操作。

即使您使用的是VS2017和Windows的Linux子系统,您的程序也是在Linux上构建和执行的。因此,链接问题(即“链接到pthread库”)的答案适用于您的情况;你只需要找出如何让VS做到这一点。这就是为什么我在这里问,我知道。我遵循了大部分教程,告诉VS如何在编译中使用pthread,但没有成功。我想这很公平。我假设平台工具集是“Remote\uGCC\u1\u0”;您只需添加“-pthread”来编译和链接命令行。VS配置将大多数g++选项映射到特定的配置值,但不是这个。转到项目的配置,“C/C++->所有选项”,将“-pthread”添加到“附加选项”配置值。转到“链接器->所有选项”并执行相同操作。最终解决。谢谢基本上我按照你说的做了,我必须为文件设置和项目设置添加额外的选项。你不应该修改文件设置-它们应该从项目级别继承。那里出了点问题,但这是与线程问题不同的问题