темы GNU libstdc ++ против потоков posix - PullRequest
0 голосов
/ 11 февраля 2019

Когда я связываю простую hellow world c ++ программу с -pthread, я получаю ошибку ниже.Как вы можете заметить, программа не использует потоки, но, похоже, библиотека времени выполнения не может запустить программу и завершает работу.

Может кто-нибудь объяснить, в чем здесь может быть проблема?В каком направлении я должен идти

#include <iostream>
#include <cstdlib>

int main()
{
  std::cout << "!Hello World!" << std::endl;
  return 0;
}

#gcc hw.cc -pthread

# ldd ./a.out
./a.out needs:
        libstdc++.so.6 => /usr/lib/libstdc++.so.6
        /usr/lib/libm.so.1
        libgcc_s.so.1 => /usr/lib/libgcc_s.so.1
        /usr/lib/libthread.so.1
        /usr/lib/libc.so.1
#

# ./a.out
terminate called after throwing an instance of '__gnu_cxx::__concurrence_lock_error'
  what():  __gnu_cxx::__concurrence_lock_error
abort
...