[gambit-list] Problem linking libgambc.a into iOS build

Jason Felice jason.m.felice at gmail.com
Sat Apr 13 22:07:52 EDT 2013


It looks like you need some 'extern "C" { }' around some code somewhere.
 Perhaps you have a "-x c++" option set?  It looks like there is some name
mangling (on account of the linker knowing what parameters it's looking
for).

This exact moment, I'm working on a Cocoapod podspec so people can just
bring in gambit to an iOS project.  I don't know what's involved, but I'm
definitely willing to help with gambit on iPhone.

-Jason


On Sat, Apr 13, 2013 at 9:53 PM, Axis Sivitz <aosivitz at gmail.com> wrote:

> I'm trying to get Gambit working for iOS development. I've successfully
> built libgambc.a for the all three architectures (i386, armv7, armv7s), but
> I'm getting linker errors when compiling for both the simulator and the
> device:
>
> Undefined symbols for architecture i386:
>   "___cleanup()", referenced from:
>       gambit_cleanup() in ViewController.o
>   "___setup_params_reset(___setup_params_struct*)", referenced from:
>       gambit_setup() in ViewController.o
>   "___disable_heartbeat_interrupts()", referenced from:
>       gambit_setup() in ViewController.o
>   "___NONNULLCHARSTRINGLIST_to_NONNULLUCS_2STRINGLIST(char**, unsigned
> short***)", referenced from:
>       gambit_setup() in ViewController.o
>   "___setup(___setup_params_struct*)", referenced from:
>       gambit_setup() in ViewController.o
>   "_main_argv", referenced from:
>       gambit_setup() in ViewController.o
> ld: symbol(s) not found for architecture i386
> clang: error: linker command failed with exit code 1 (use -v to see
> invocation)
>
> I built the library using the build-gambit-iOS script with the following
> changes:
> ios_version="6.1"
> export
> PATH="/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin:$PATH"
> ^---This is what Xcode uses now instead of a separate compiler binary for
> each platform.
> And I changed the compiler to clang.
>
> Some more info:
>
> $ file libgambc.a
> libgambc.a: Mach-O universal binary with 3 architectures
> libgambc.a (for architecture i386):     current ar archive random library
> libgambc.a (for architecture armv7):    current ar archive random library
> libgambc.a (for architecture cputype (12) cpusubtype (11)):     current ar
> archive random library
>
> $ nm libgambc.a | grep ___disable_heartbeat
>          U ____disable_heartbeat_interrupts
>          U ____disable_heartbeat_interrupts
> 00000450 T ____disable_heartbeat_interrupts
>          U ____disable_heartbeat_interrupts
>          U ____disable_heartbeat_interrupts
>          U ____disable_heartbeat_interrupts
> 000003a0 T ____disable_heartbeat_interrupts
>          U ____disable_heartbeat_interrupts
>          U ____disable_heartbeat_interrupts
>          U ____disable_heartbeat_interrupts
> 000003a0 T ____disable_heartbeat_interrupts
>          U ____disable_heartbeat_interrupts
>
> Here's the failing build command (for simulator):
>
> Ld
> /Users/asdf/Library/Developer/Xcode/DerivedData/flip-fcbkezkyqdgezscmmmtweckhrzoj/Build/Products/Debug-iphonesimulator/flip.app/flip
> normal i386
>     cd /Users/asdf/Development/flip
>     setenv IPHONEOS_DEPLOYMENT_TARGET 6.1
>     setenv PATH
> "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
>
> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++
> -arch i386 -isysroot
> /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator6.1.sdk
> -L/Users/asdf/Library/Developer/Xcode/DerivedData/flip-fcbkezkyqdgezscmmmtweckhrzoj/Build/Products/Debug-iphonesimulator
> -L/Users/asdf/Downloads/gambc-v4_6_7-devel/misc/gambit-iOS/current/lib
> -F/Users/asdf/Library/Developer/Xcode/DerivedData/flip-fcbkezkyqdgezscmmmtweckhrzoj/Build/Products/Debug-iphonesimulator
> -filelist
> /Users/asdf/Library/Developer/Xcode/DerivedData/flip-fcbkezkyqdgezscmmmtweckhrzoj/Build/Intermediates/flip.build/Debug-iphonesimulator/flip.build/Objects-normal/i386/flip.LinkFileList
> -Xlinker -objc_abi_version -Xlinker 2 -lgambc -fobjc-link-runtime -Xlinker
> -no_implicit_dylibs -stdlib=libc++ -mios-simulator-version-min=6.1
> -framework OpenAL -framework AudioToolbox -framework AVFoundation
> -framework UIKit -framework Foundation
>  -framework CoreGraphics -framework GLKit -framework OpenGLES -o
> /Users/asdf/Library/Developer/Xcode/DerivedData/flip-fcbkezkyqdgezscmmmtweckhrzoj/Build/Products/Debug-iphonesimulator/flip.app/flip
>
> Any advice is appreciated. Thanks!
>
>
> _______________________________________________
> Gambit-list mailing list
> Gambit-list at iro.umontreal.ca
> https://webmail.iro.umontreal.ca/mailman/listinfo/gambit-list
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.iro.umontreal.ca/pipermail/gambit-list/attachments/20130413/47886249/attachment.htm>


More information about the Gambit-list mailing list