正如我在 中阅读了改进的链接时间优化支持一样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
。
问题:
这种行为是有意的(修复方法是什么?)还是一个错误?
(在这个问题可能出现之前:我的编译器都是用 构建的--enable-threads=posix
)