[Qgis-developer] Building ".so" plugin, not ".dylib" on Mac
William Kyngesburye
woklist at kyngchaos.com
Tue Oct 30 08:20:09 PDT 2012
On Oct 30, 2012, at 9:51 AM, Tasos Varoudis wrote:
> Im not doing both together:
> one in "-=" and the bundle is "+="
>
I missed the detail there
> This is what I get
> g++-4.2 -headerpad_max_install_names -FXXX/lib -arch x86_64 -single_module -bundle -Xarch_x86_64 -mmacosx-version-min=10.6 -o libTest.dylib debug/XX.o ….
>
> file libTest.dylib
> libTest.dylib: Mach-O 64-bit dynamically linked shared library x86_64
>
That's very odd. The -bundle option should create a bundle but you're getting a dynamic library. The only thing I can think of (and equally very odd) is that the linker sees the .dylib extension on the output file and thinks you really meant a dynamiclib.
>
> Im not sure if Im don't something else wrong. On linux everything work perfect.
>
> Where should I put a dylib file in order to load it as a QGIS plugin on a Mac OSX?
>
Anyways, as I said, a dynamiclib (that's what they are on linux, linux doesn't have the shared lib/module distinction) should still be loadable as a plugin. As long as it has a .so extension (it will not load a .dylib as a plugin), and it's in the plugins folder with the rest of the plugins, QGIS will load it. if it is causing a crash, then something else is probably wrong (and it's beyond my skills).
The crash log might help figure out what's wrong.
> Best
>
>
> On 30 Oct 2012, at 14:40, William Kyngesburye <woklist at kyngchaos.com> wrote:
>
>> If you are doing both of those at the same time, I'm guessing that dynamiclib (probably synonym for dylib) is overriding bundle.
>>
>> You can figure out what it really linked as with:
>>
>> file /path/to/your/plugin
>>
>> But then, the difference between a dylib and a bundle is not a big one - a dylib can be loaded like a bundle. Maybe there is a different problem?
>>
>> On Oct 30, 2012, at 9:22 AM, Tasos Varoudis wrote:
>>
>>> Hi,
>>>
>>> So something like that should work:
>>>
>>> macx:QMAKE_LFLAGS_PLUGIN -= -dynamiclib
>>> macx:QMAKE_LFLAGS_PLUGIN += -bundle
>>>
>>> But it didn't.
>>> I still get a dylib file and if I rename it to .so QGIS will crash (as it really a dylid and qgis is confused) or not load at all (if I leave it as dylib and move it to the plugin folder).
>>>
>>> Thanks
>>> Tasos
>>>
>>>
>>> On 30 Oct 2012, at 13:46, William Kyngesburye <woklist at kyngchaos.com> wrote:
>>>
>>>> You need to use a MODULE type for the cmake ADD_LIBRARY(). I don't know how to do this with qmake, but the linker flag is -bundle instead of -dylib.
>>>>
-----
William Kyngesburye <kyngchaos*at*kyngchaos*dot*com>
http://www.kyngchaos.com/
"Time is an illusion - lunchtime doubly so."
- Ford Prefect
More information about the Qgis-developer
mailing list