I've been able to compile and build the frameworks for boost and quantlib on XCode 4.6 and iOS 6.1 (and armv7s!):
- boost - used boostoniphone-galbraithjosephs script modified to ios 6.1 and boost 1_53_0 (thank you Joseph!)
- quantlib - used Philip Barnes script with my modifications for ios 6.1 and quantlib 1.2.1 (thank you Philip!)
When I run the FXVanillaSwapExample in Xcode (which uses both boost.framework and ql.framework), I get the 56 warnings and 2 errors, mostly relating to: ld: warning: direct access in xyz to global weak symbol vtable for xyz means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. and ld: warning: direct access in QuantLib::RecoveryRateQuote::value() const to global weak symbol QuantLib
I got these warnings for both Quantlib and boost. I then read the posts on SO on visibility settings.
boost was compiled by the script with -fvisibility=hidden -fvisibility-inlines-hidden quantlib was compiled with -fvisibility=hidden but not -fvisibility-inlines-hidden
I modified the quantlib script to add -fvisibility-inlines-hidden then rebuilt it all to no avail. Same linker errors.
I also tried playing around with the "Inline Methods Hidden" and "Symbols Hidden by Default" in the XCode Build Settings (these must be setting the same -f flags behind the scenes)
So then I tried to rebuild both boost and quantlib with -fvisibility=default and removed the -fvisibility-inlines-hidden flag. This also didn't work. Same linker errors again when building the FXVanillaSwapExample.
So I am guessing that I am not setting up the builds properly and somewhere inside the build the -f flags get messed with. I just have no idea how to diagnose how that is happening. Ideas appreciated.