我已将问题缩减为以下小代码段:
struct tls {
~tls() {}
void dont_opt_out() {}
};
thread_local tls tls_obj;
int main(int argc, char **argv) {
tls_obj.dont_opt_out();
}
执行程序时崩溃。为什么呢?
我在Windows上使用gcc版本4.8.2,我使用g++ -std=c++11 main.cpp
进行编译。
答案 0 :(得分:1)
尝试将代码编译为多线程。
在Cygwin下,编译器和链接器都是-mthreads
选项。