I've got a weird linker issue. I have code that looks like so:
double given_amount = self.modelController.levelCompleteRewardAmount; swrve_currency_given(swrve, (CFStringRef)@"currencyName", given_amount);
I have this code in two separate places: In an objective-c and an objective-c++ file. It compiles fine in objective-C land, but the swrve_currency_given() function causes the following in my WGController.mm file:
Undefined symbols for architecture armv7: "swrve_currency_given(Swrve*, __CFString const*, double)", referenced from: -[WGController giveTheUserSomeCashForPlayingThisLevel] in WGController.o ld: symbol(s) not found for architecture armv7 collect2: ld returned 1 exit status
I'm not entirely sure if this error is related to the Obj-C vs. C++ thing, but it feels like it. My theory is that it perhaps thinks that it is a function on the Obj-C class? The 'swrve' code is 3rd party code, one .h and .c file and I'm importing like so:
#import "swrve.h"
Any help is appreciated! Thanks
You may need to surround the function prototype with:
#if defined __cplusplus extern "C" { #endif void swrve_currency_given (...whatever goes here...); #if defined __cplusplus }; #endif
That tells the compiler that it's a C function and not a C++ function.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With