我有以下代码,可以在Windows MinGW中编译。
#include <future>
#include <iostream>
#include <string>
int main(){
auto futureLambda= std::async([](const std::string& s ){return "Hello C++11 from " + s + ".";},"lambda function\n");
std::cout << futureLambda.get() << std::endl;
}
[当我尝试使用]在Linux(gcc版本8.3.0(Debian 8.3.0-6))中运行它时>
g ++ -std = c ++ 1z main.cpp
或
g ++ -std = c ++ 17 main.cpp
我得到:
/ usr / bin / ld:/tmp/cc4vI5fr.o:在函数std::thread::thread<std::__future_base::_Async_state_impl<std::thread::_Invoker<std::tuple<main::{lambda(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)#1}, char const*> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::_Async_state_impl(std::tuple<main::{lambda(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)#1}, char const*>&&)::{lambda()#1}, , void>(std::__future_base::_Async_state_impl<std::thread::_Invoker<std::tuple<main::{lambda(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)#1}, char const*> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::_Async_state_impl(std::tuple<main::{lambda(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)#1}, char const*>&&)::{lambda()#1}&&)':
main.cpp:(.text+0x1c72): undefined reference to
pthread_create中collect2:错误:ld返回1退出状态
我在做什么错?
我有以下代码,可以在Windows MinGW中进行编译。 #include