Re: Avoiding link conflicts with a static library
Re: Avoiding link conflicts with a static library
- Subject: Re: Avoiding link conflicts with a static library
- From: Redler Eyal <email@hidden>
- Date: Wed, 04 Apr 2018 22:23:54 +0300
>>
>> We're developing an SDK for iOS, the SDK is delivered in a statically-linked
>> framework. Our library uses openCV and we link OpenCV into the delivered
>> framework binary.
>>
>> This SDK was deployed successfully with some clients but we're having an
>> issue with one client whose application also links indirectly (via card-io)
>> with openCV. The version of openCV they're using is different then then one
>> we use and as a result of this conflict, the application crashes upon use of
>> our SDK.
>>
>> We are aware that the following are possible solutions to the problem:
>> a. Switch to use the same version of OpenCV as our client.
>> b. Build our framework as a dynamic library (where we a supposed to be able
>> to hide openCV inside)
>> Both of these options are not optimal for us and we trying to see if we have
>> any other option.
>
> You could rename the symbols in your copy of OpenCV so that they don’t match
> the standard ones. One way to do that is with the preprocessor (use #defines
> to change the names of the OpenCV functions you use), which potentially
> avoids altering the OpenCV sources themselves (you can use a prefix header to
> get your #defines into the OpenCV build process if necessary).
>
We thought about this option too but we figured it would require changing all
the symbols in the library and not just the ones we use because the functions
were using may be calling other functions which could also have the same name
in the new and old versions of the library. (Correct me if I'm wrong)
Eyal
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden