我正在使用clang 3.7和MinGW-w64 4.0版 .

试图 Build 这个:

#include <thread>
void f(){}
int main()
{   
   std::thread t(f);
    return 0;
}

使用这些编译器标志 clang++ -std=c++11 -pthread C:\Users\Илья\Desktop\main.cpp -o C:\Users\Илья\Desktop\main.exe -static

生成此链接器输出:

C:\ mingw64 \ lib \ gcc \ x86_64-w64-mingw32 \ 5.1.0 \ libstdc .a(tinfo.o):( . text $ ZNKSt9type_infoeqERKS 0x0):std :: type_info :: operato的多重定义r == (std :: type_info const&)const'C:\ Users \ 75BD~1 \ AppData \ Local \ Temp \ main-005548.o :( . text [ZNKSt9type_infoeqERKS] 0x0):首先在这里定义C:\ mingw64 \ lib \ gcc \ x86_64的-W64-的mingw32 \ 5.1.0 \的libstdc .A(future.o):(文本$ ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE10_M_destroyEv [_ZNSt16 _Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE10_M_destroyEv]为0x0):STD的多个定义:: _ Sp_counted_base <(_ gnu_cxx :: _ Lock_policy)2> :: _M_de stroy()'C:\ Users \ 75BD~1 \ AppData \ Local \ Temp \ main-005548.o :( . text [_ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE10_M_destroyEv] 0x0):首先定义她的电子C:\ mingw64 \ lib \ gcc \ x86_64- w64-mingw32 \ 5.1.0 \ libstdc .a(future.o):( . text $ ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE10_M_releaseEv [_ZNSt16 _Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE10_M_releaseEv] 0x0):`std :: 的多重定义sp_counted_base <( gnu_cxx :: _ Lock_policy)2> :: _ M_re lease()'C:\ Users \ 75BD~1 \ AppData \ Local \ Temp \ main-005548.o :( . text [_ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE10_M_releaseEv] 0x0):首先定义她e clang .exe:错误:链接器命令失败,退出代码为1(使用-v查看调用)

如何修复此问题并使用-static和-pthread构建此应用程序?