Я уменьшил проблему до следующего небольшого фрагмента кода:
struct tls {
~tls() {}
void dont_opt_out() {}
};
thread_local tls tls_obj;
int main(int argc, char **argv) {
tls_obj.dont_opt_out();
}
При выполнении программа вылетает. Зачем?
Я использую GCC версии 4.8.2 на Windows, я компилирую с g++ -std=c++11 main.cpp
,
Попробуйте скомпилировать ваш код как многопоточный.
Под Cygwin это -mthreads
опция для компилятора и компоновщика.
Других решений пока нет …