Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

I am getting "error: no member named 'async' in namespace 'std' " when compiling using MakeFile

When I run command clang++ -Wall -g -std=c++11 main.cpp in terminal the file gets compiled successfully.

% clang++ -Wall -g -std=c++11 main.cpp
% ./a.out                             
s
s
%

But when I try to do the same thing using MakeFile. I get following error.
I don’t know why error occurred when same command is executed in both case.

% make main
c++     main.cpp   -o main
main.cpp:17:5: warning: 'auto' type specifier is a C++11 extension [-Wc++11-extensions]
    auto s = std::async(get);
    ^
main.cpp:17:19: error: no member named 'async' in namespace 'std'
    auto s = std::async(get);
             ~~~~~^
1 warning and 1 error generated.
make: *** [main] Error 1

My MakeFile content:

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

main: main.cpp
    clang++ -Wall -g -std=c++11 main.cpp

My main.cpp content:

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

std::string get() {
    std::string s;
    std::getline(std::cin, s);
    return s;
}
void put(std::string s) {
    std::cout << s << std::endl;
}
int main(int argc, char **argv){
    auto s = std::async(get);
    std::thread t(put, s.get());
    t.join();
    return 0;
}

>Solution :

As you can see when you run make, the compilation command invocation is missing the -std=c++11 option that you use when you’re compiling your code manually.

You can use

CXXFLAGS=-std=c++11

to have make automatically add this option when building .o files from .cpp files.

You can also provide the -g and -Wall options the same way.

Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading