正如我在g++-4.9
中读到的关于改进链接时间优化支持的内容,我想尝试一下。遗憾的是,我在运行时获得了例外情况,特别是std::system_error
和e.what() == Enable multithreading to use std::thread: Operation not permitted
。
现在我通常知道如何修复该错误:将-pthread
添加到我的编译器调用中,但事实上,我已经有了这个参数!
我的示例代码是:
#include <thread>
int main()
{
std::thread t([](){}); // do nothing in a thread!
t.join(); // wait for nothing to be done
}
编译(X为7,8或9)
g++-4.X -std=c++11 -pthread test.cpp -o thread_test_fine
按预期完美运行,没有运行时错误。
然而,
g++-4.X -std=c++11 -pthread -flto test.cpp -o thread_test_runtime_error
因system_error
例外而失败。
问题:
这种行为是针对的(修复了什么?)还是一个bug?
(在此问题出现之前:我的编译器都是用--enable-threads=posix
)构建的
答案 0 :(得分:2)