[Qgis-developer] Build plugins for use with Mac binary

William Kyngesburye woklist at kyngchaos.com
Wed Jan 21 12:30:52 EST 2009


On Jan 21, 2009, at 10:01 AM, Peter Ersts wrote:

> Howdy William. Thanks for the quick response.
>
> William Kyngesburye wrote:
>> It looks like maybe something went wrong in Tom's 1.0 compilation  
>> so that it dropped the version numbers.  So there is a version  
>> mismatch between your plugin and Qgis.
>>
>> Also, you say you are using my frameworks - GEOS and GDAL, it looks  
>> like?  Then are you using install_name_tool to change the library  
>> references in your plugin?  Same problem, though backwards.
> Yes, just downloaded your frameworks again today and yes I am using  
> install_name_tool to change the reference to match the QGIS binary  
> distribution.
>
>> I build my GEOS framework with the C++ and C APIs combined, thus  
>> they can't have the two different version numbers, so I use an  
>> arbitrary numbering system.  I *think* Apple's runtime linker  
>> compatibility versioning doesn't operate at all across major  
>> versions, forwards *or* backwards (at least, I've had problems in  
>> the past trying to do so).
> I don't think it does and I want to say that that is the same across  
> minor numbers as well. When I first started trying to compiled for  
> OSX I my QT version was one minor version number different (newer)  
> and the plugin would not load. Once I changed Qt versions it loaded  
> up just fine.
>
Yes, minor and point version number changes should not cause  
problems.  So, if you compile to a library with ver 2.1.0 +  
compatibility ver 2.0.0, then at runtime it finds a ver 2.1.1, or  
2.2.0, and probably 2.0.0, it will work.  It won't work at runtime  
with a ver 1.1.0, or with a ver 3.0.0 - the major versions are  
different.  Minor.point compatibility versions are a minimum, major  
compat versions are absolute.

>> Well, since you're using my frameworks to build your plugin, and  
>> your own Qgis, try it out on my Qgis 1.0?  No need to change the  
>> library paths for GEOS or GDAL.
> I tried the version from your site Qgis 1.0.0-1 for Leopard. It  
> immediately crashed at first. Seems that the GDAL 1.6 framework  
> requires postgres, though it is not listed as a dependency. Once I  
> installed the postgres framework qgis loaded but when I add my  
> plugin it crashes again
>
Argh!  I'm working on a better build environment for my GDAL  
framework.  The postgres lib link should be in my post-processing.  I  
got this right for the Leopard build, but missed it in the Tiger  
build. (so it sounds like you are on Tiger?)

I'll package a new GDAL framework later today.

> There is still a different in the GEOS version numbers. The north  
> arrow plugin shows GOES lib compatability version 4.0.0, current  
> version 4.1.0, when I build with your GOES framework  
> ( GOES_Framework-3.0.3-1.dmg ) that is online, I get compatability  
> version 4.0.0, current version 4.0.3
>
um, what's this then, from your first email:

> libnortharrowplugin.so:
>   @executable_path/lib/libgeos_c.1.dylib (compatibility version  
> 6.0.0, current version 6.2.0)

>

-----
William Kyngesburye <kyngchaos*at*kyngchaos*dot*com>
http://www.kyngchaos.com/

"History is an illusion caused by the passage of time, and time is an  
illusion caused by the passage of history."

- Hitchhiker's Guide to the Galaxy




More information about the Qgis-developer mailing list