我已经能够在XCode 4.6和iOS 6.1(以及armv7s上)编译和构建boost和quantlib的框架:
当我在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标记搞砸了。我根本不知道如何诊断这是怎么回事。赞赏的想法。