Today I tried Standard C++
Thread Library on OpenBSD
, since it requires the compiler to support C++11
standard, and the default c++
only support C++98
(please refer here), so I need to switch to clang++
. The program is just a classic “Hello World”:
#include <thread>
#include <iostream>
void hello()
{
std::cout << "Hello World!\n";
}
int main(void)
{
std::thread t(hello);
t.join();
return 0;
}
Built and run it:
# clang++ -std=c++11 hello.cpp
root:/root/Project# ./a.out
terminate called after throwing an instance of 'std::system_error'
what(): Enable multithreading to use std::thread: Operation not permitted
Abort trap (core dumped)
Whoops! The program crashed. After reading this post, adding -pthread
during compilation fixed this issue:
# clang++ -pthread -std=c++11 hello.cpp
# ./a.out
Hello World!