在ios的boost和quantlib中的链接器警告似乎无法查看可见性警告

时间:2013-03-18 03:26:12

标签: ios xcode boost linker quantlib

我已经能够在XCode 4.6和iOS 6.1(以及armv7s上)编译和构建boost和quantlib的框架:

  • boost - 使用boostoniphone-galbraithjosephs脚本修改为ios 6.1并提升1_53_0(谢谢约瑟夫!)
  • quantlib - 使用Philip Barnes脚本修改ios 6.1和quantlib 1.2.1 (谢谢菲利普!)

当我在Xcode中运行FXVanillaSwapExample(同时使用boost.framework和ql.framework)时,我收到56个警告和2个错误,主要与:     ld:警告:在xyz中直接访问xyz的全局弱符号vtable意味着在运行时不能覆盖弱符号。这可能是由使用不同可见性设置编译的不同翻译单元引起的。 和     ld:警告:在QuantLib :: RecoveryRateQuote :: value()const中直接访问全局弱符号QuantLib

我收到了Quantlib和boost的警告。然后,我在可见性设置上阅读关于SO的帖子。

boost由脚本编译,-fvisibility = hidden -fvisibility-inlines-hidden 使用-fvisibility = hidden但不是-fvisibility-inlines-hidden

编译了quantlib

我修改了quantlib脚本以添加-fvisibility-inlines-hidden然后将其全部重建无济于事。相同的链接器错误

我还尝试使用XCode Build Settings中的“Inline Methods Hidden”和“默认隐藏的符号”(这些必须在幕后设置相同的-f标志)

然后我尝试使用-fvisibility = default重建boost和quantlib,并删除-fvisibility-inlines-hidden标志。这也行不通。构建FXVanillaSwapExample时再次出现相同的链接器错误。

所以我猜我没有正确设置构建,而且构建中的某些地方-f标记搞砸了。我根本不知道如何诊断这是怎么回事。赞赏的想法。

0 个答案:

没有答案