Developer forums (C::B DEVELOPMENT STRICTLY!) > Development

Adding Linker Options To CodeBlocks

(1/2) > >>

EverydayDiesel:
Hello,

I am trying to get this program working




--- Code: ---#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;
}



--- End code ---



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

Process returned 134

--- End code ---

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.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.

yvesdm3000:
http://stackoverflow.com/questions/19463602/compiling-multithread-code-with-g

It's not related to CodeBlocks

Yves

EverydayDiesel:

--- 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

--- End quote ---

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)


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

--- End code ---

or


--- Code: ----Wl,--no-as-needed

--- End code ---

or


--- Code: ----Wl,--no-as-needed -lpthread

--- End code ---

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


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

--- End code ---


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

Navigation

[0] Message Index

[#] Next page

Go to full version