1

我正在尝试在 os x 上启动并运行 boost 光纤,但我遇到了很多问题。首先,由于Apple不支持使用Apple clang,因此Fiber无法编译thread_local(根据我在网上找到的内容,他们认为他们可以比标准llvm更好地实现它,并且不想仅仅为了破坏ABI而引入它之后)。

因此,我尝试使用通过自制软件安装的 gcc-5。经过一番改进后,我设法构建了光纤,并且可以成功链接示例程序,但是它们出现了故障。

然后我想我会尝试一下当前的 llvm,因为它支持 thread_local,我可以再次获得 boost Fiber 来构建良好,但现在我遇到了问题,因为 os x 链接器似乎无法正确处理本地线程任何一个!我会发布确切的错误,但我的电源已经用完了。尽管对光纤进行了一些更改,但实际上我确实让它链接起来,但示例程序再次失败。

所以问题是,我怎样才能做到这一点?有没有办法让另一个链接器为我生成 os x 可执行文件?Llvm 带有另一个名为 lld 的链接器,但我认为它不能满足我的需求。

我想如果我绝对需要的话,我可以通过 Fiber 并提升上下文,用 boost::thread_specific_ptr 替换所有 thread_local,但我不确定那个兔子洞有多深。有什么建议么?

4

0 回答 0