gpt4 book ai didi

c++ - 使用 g++ 编译多线程代码(-Wl,--no-as-needed 不工作)

转载 作者:太空狗 更新时间:2023-10-29 20:40:49 25 4
gpt4 key购买 nike

我的问题实际上在这里描述:Compiling multithread code with g++ .但是关于使用“-Wl,--no-as-needed”解决问题的答案对我不起作用。

我也以不同的顺序添加了 -Wl,--no-as-needed -pthread -std=c++0x,但我仍然得到:

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

怎么办?

Info: 
Ubuntu 12.04LTS
Running Eclipse CDT
g++ v4.8.1

编辑:我尝试使用 -Wl,--no-as-needed -lpthread -std=c++0x 进行构建,但没有成功。代码:

#include <iostream>
#include <chrono>
#include <thread>

void foo()
{
std::cout << "Thread 1 created.." << std::endl;
}

int main()
{
std::thread t1(foo);

t1.join();

return 0;
}

编辑:所以不幸的是你的建议都没有奏效。我决定改用 Boost。

最佳答案

  1. -Wl,--no-as-needed 不是 -Wl,--no_as_needed,你用连字符
  2. -pthread 是编译器的标志,而不是链接器,链接器的正确标志是 -lpthread
  3. Mingw 并不总是带有相同的线程库,对于 MinGW 的多线程有不止 1 个选项,您应该根据您的 MinGW 构建记录自己

关于c++ - 使用 g++ 编译多线程代码(-Wl,--no-as-needed 不工作),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22593658/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com