News:

The new Release 25.03 is out! You can download binaries for Windows and many major Linux distros here .

Main Menu

Adding Linker Options To CodeBlocks

Started by EverydayDiesel, January 25, 2017, 02:59:31 AM

Previous topic - Next topic

EverydayDiesel

Hello,

I am trying to get this program working




#include <iostream>
#include <thread>
#include <future>

using namespace std;

void initiazer(std::promise<int> * promObj)
{
    std::cout<<"Inside Thread"<<std::endl;     promObj->set_value(35);
}

int main()
{
    std::promise<int> promiseObj;
    std::future<int> futureObj = promiseObj.get_future();
    std::thread th(initiazer, &promiseObj);
    std::cout<<futureObj.get()<<std::endl;
    th.join();
    return 0;
}






terminate called after throwing an instance of 'std::system_error'
  what():  Enable multithreading to use std::thread: Operation not permitted
Aborted

Process returned 134


I went to PROJECT --> BUILD OPTIONS  --> [Select project name in top left] -->  Check -std=c++11

then under

LINKER SETTINGS --> OTHER LINKER OPTIONS --> I typed -pthread


Why wont this application compile?

Thanks in advance

stahta01

Please read this FAQ http://wiki.codeblocks.org/index.php?title=FAQ-Compiling_%28general%29#Q:_How_do_I_report_a_compilation_problem_on_the_forums.3F
And, the rules. http://forums.next.codeblocks.org/index.php/topic,9996.0.html

And, if you think it is within the rules post at least a full rebuild log in code tags.

Note: I do NOT do C++ threading; but, your error looks more like a run-time message instead of a compiler/linker message.

Tim S.
C Programmer working to learn more about C++.
On Windows 10 64 bit and Windows 11 64 bit.
--
When in doubt, read the CB WiKi FAQ. [url="http://wiki.codeblocks.org"]http://wiki.codeblocks.org[/url]

yvesdm3000

Clang based code completion for Code::Blocks:   [url="http://github.com/yvesdm3000/ClangLib"]http://github.com/yvesdm3000/ClangLib[/url]

EverydayDiesel

#3
Quote from: yvesdm3000 on January 25, 2017, 07:24:43 AM
http://stackoverflow.com/questions/19463602/compiling-multithread-code-with-g

It's not related to CodeBlocks

Yves

Thank you for the response.  I realize this is not related to code blocks directly but my question is how do I configure codeblocks with these options.

I saw the thread that you posted before I created this thread.

I go to PROJECT --> BUILD OPTIONS --> [Select project name in top left] --> OTHER COMPILER OPTIONS -->
In the box i append one of the following (I have tried all 3 and none work)


-pthread -lpthread -Wl,--no-as-needed


or


-Wl,--no-as-needed


or


-Wl,--no-as-needed -lpthread


Am I typing this in the correct spot?  my g++ is 4.8.4

Thanks to any information you guys can provide

EverydayDiesel

If i bypass codeblocks completely then it works


$ g++ -c main.cpp -pthread -std=c++11
$ g++ main.o -o main.out -pthread -std=c++11
$ ./main.out
Inside Thread
35



this code will compile in codeblocks but the program will not execute (it gives the original error)




EDIT:
clean your project and it will work

oBFusCATed

The options you want to add are linker options, not compiler options, so you need to add them in the linker tab in your settings, not compiler tab.
(most of the time I ignore long posts)
[strangers don't send me private messages, I'll ignore them; post a topic in the forum, but first read the rules!]