C++ 在UbuntuMingW上指定线程模型(如果可能)

C++ 在UbuntuMingW上指定线程模型(如果可能),c++,linux,g++,mingw-w64,C++,Linux,G++,Mingw W64,我用g++在linux上运行一个程序,一切正常。如果我使用x86\u 64-w64-mingw32-g++编译,它会崩溃,并出现错误:“std::thread”尚未声明 我的代码崩溃的部分相当简单: #include <thread> int main() { int cores = std::thread::hardware_concurrency(); } 正如您所看到的,线程模型是win32,(如何)更改它?在mingwinclude路径中有一个9.3-posix文

我用
g++
在linux上运行一个程序,一切正常。如果我使用
x86\u 64-w64-mingw32-g++
编译,它会崩溃,并出现
错误:“std::thread”尚未声明

我的代码崩溃的部分相当简单:

#include <thread>

int main()
{
    int cores = std::thread::hardware_concurrency();
}
正如您所看到的,线程模型是win32,(如何)更改它?在mingwinclude路径中有一个9.3-posix文件夹,但似乎到目前为止还没有使用

如您所见,您可以:

我正在Windows上安装mingw-w64,有两个选项:win32线程和posix线程


linux上也可以这样做吗?

似乎包
g++-mingw-w64-x86-64
提供了两个可执行文件:

  • x86_64-w64-mingw32-g++-posix
    :使用posix的
  • x86\u 64-w64-mingw32-g++-win32
    :使用win32的

使用第一个可执行文件应该可以解决您的问题。

我爱您,它工作得非常完美。出于好奇,你是怎么发现这个的?“我在straigt做了两天的研究。@Zacki谢谢,我知道,我以前去过那里!”!我不得不四处看看,我想这是在这一页上发现的。我很高兴我以前的努力没有白费!
:~$ x86_64-w64-mingw32-g++ -v
Using built-in specs.
COLLECT_GCC=x86_64-w64-mingw32-g++
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-w64-mingw32/9.3-win32/lto-wrapper
Target: x86_64-w64-mingw32
Configured with: ../../src/configure --build=x86_64-linux-gnu --prefix=/usr --includedir='/usr/include' --mandir='/usr/share/man' --infodir='/usr/share/info' --sysconfdir=/etc --localstatedir=/var --disable-silent-rules --libdir='/usr/lib/x86_64-linux-gnu' --libexecdir='/usr/lib/x86_64-linux-gnu' --disable-maintainer-mode --disable-dependency-tracking --prefix=/usr --enable-shared --enable-static --disable-multilib --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --libdir=/usr/lib --enable-libstdcxx-time=yes --with-tune=generic --with-headers=/usr/x86_64-w64-mingw32/include --enable-version-specific-runtime-libs --enable-fully-dynamic-string --enable-libgomp --enable-languages=c,c++,fortran,objc,obj-c++,ada --enable-lto --enable-threads=win32 --program-suffix=-win32 --program-prefix=x86_64-w64-mingw32- --target=x86_64-w64-mingw32 --with-as=/usr/bin/x86_64-w64-mingw32-as --with-ld=/usr/bin/x86_64-w64-mingw32-ld --enable-libatomic --enable-libstdcxx-filesystem-ts=yes --enable-dependency-tracking
Thread model: win32
gcc version 9.3-win32 20200320 (GCC)