peregrine,
в обоих случаях та же ошибка, также не линкуется pthread
shkiper@server:~/C++/Thread$ file -i thread.cpp
thread.cpp: text/x-c; charset=us-ascii
shkiper@server:~/C++/Thread$
вроде UTF-8, просто за 256 символ юникода ничего не выходит, поэтому us-ascii
оформил баг*Kernel ops ушел за бубном
Пользователь решил продолжить мысль 24 Сентября 2013, 01:05:01:
Kernel ops,
ответил разработчик, сказал, что временно нужно компилировать с -Wl,--no-as-needed. просто съедать опции g++ не хочет, нашел как надо:
shkiper@server:~/C++/Thread$ g++ -o thread -Wl,--as-needed -std=c++11 -pthread -Wl,--no-as-needed thread.cpp
shkiper@server:~/C++/Thread$ ./thread
1307674368000
355687428096000
shkiper@server:~/C++/Thread$
видимо, это опции линковщика. пойду разбираться, что они делают
Пользователь решил продолжить мысль 24 Сентября 2013, 01:23:14:
shkiper@server:~/C++/Thread$ g++ -o thread -std=c++11 -pthread -Wl,--no-as-needed thread.cpp
shkiper@server:~/C++/Thread$ ./thread
1307674368000
355687428096000
shkiper@server:~/C++/Thread$ g++ -o thread -std=c++11 -pthread -Wl,--as-needed thread.cpp
shkiper@server:~/C++/Thread$ ./thread
terminate called after throwing an instance of 'std::system_error'
what(): Enable multithreading to use std::thread: Operation not permitted
Аварийный останов (сделан дамп памяти)
shkiper@server:~/C++/Thread$
нашел
статью, там описано, что as-needed "по-умному" отсеивает библиотеки, которые не будут использоваться в программе. видимо, g++ стоял перед выбором "залинковать pthread, но as-needed говорит, что не надо. юзер тупой, лучше не буду линковать". а no-as-needed убирает "юзер тупой" и дает пользователю возможность залинковать еще что-то. -Wl, наверное, передает опции линковщику.
в общем, ждем фикса
