LMSouq
general-dev Open

Compiling multithread code with g++

ZE
zerkms
1 month ago
3 views
Problem Description
I have the easiest code ever: #include <iostream> #include <thread> void worker() { std::cout << "another thread"; } int main() { std::thread t(worker); std::cout << "main thread" << std::endl; t.join(); return 0; } though I still cannot compile it with `g++` to run. More details: $ g++ --version g++ (Ubuntu/Linaro 4.8.1-10ubuntu8) 4.8.1 Copyright (C) 2013 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Command to compile: $ g++ main.cpp -o main.out -pthread -std=c++11 Running: $ ./main.out terminate called after throwing an instance of 'std::system_error' what(): Enable multithreading to use std::thread: Operation not permitted Aborted (core dumped) And now I'm in stuck. In every related thread over the internet it's recommended to add `-pthread` while I have it already. What am I doing wrong? PS: It's a brand new ubuntu 13.10 installation. Only `g++` package was installed and minor things like `chromium` etc PPS: $ ldd ./a.out linux-vdso.so.1 => (0x00007fff29fc1000) libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fb85397d000) libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fb853767000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fb85339e000) libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fb85309a000) /lib64/ld-linux-x86-64.so.2 (0x00007fb853c96000) PPPS: with `clang++` (v3.2) it compiles and runs fine PPPPS: guys, it's not a duplicate of https://stackoverflow.com/questions/8649828/what-is-wrong-with-this-use-of-stdthread PPPPPS: $ dpkg --get-selections | grep 'libc.*dev' libc-dev-bin install libc6-dev:amd64 install libclang-common-dev install linux-libc-dev:amd64 install

AI-Generated Solution

Powered by LMSouq AI · GPT-4.1-mini

✓ Solution Ready
Analyzing problem and generating solution…
Was this solution helpful?
Back to Knowledge Base