为什么thread_local的这种用法会崩溃?

时间:2013-11-29 02:52:02

标签: c++ gcc c++11 thread-local-storage

我已将问题缩减为以下小代码段:

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进行编译。

1 个答案:

答案 0 :(得分:1)

尝试将代码编译为多线程。

在Cygwin下,编译器和链接器都是-mthreads选项。