[Geany-devel] Geany Newsletter Issue #5
Matthew Brush
mbrush at xxxxx
Mon May 28 23:55:30 UTC 2012
On 12-05-28 02:24 PM, Thomas Martitz wrote:
> Am 28.05.2012 13:27, schrieb Lex Trotman:
>>
>> This doesn't actually call the C++ constructors/destructors in the way
>> they would be in normally be if the plugin had been statically linked.
>>
>> This simply labels a C function to be called at dlopen time. It may
>> be used to do some initialisation, but you would have to manually call
>> each constructor, ... too error prone, Franks advice to create
>> everything dynamically is sound.
>>
>
> I meant to say that global/static constructors/destructors are in fact
> called when a library is dlopened(), regardless of the language of
> calling code.
>
I think that blurb in the newsletter was written before it was realized
that the whole C++ runtime/magic was already present because of
Scintilla. I wrote the paragraphs and IIRC Lex reviewed/revised it, but
I can say I'm probably the least qualified to write about how to use C++ :)
>>
>> $ gcc -o libtestcpp.so -shared -fPIC test.cpp -g -lstdc++
>> -Wl,--no-undefined
>>
>>
>> $ ./test
>> Hello from Test
>> hello from extern C function
>> Bye from Test
>
>
> FWIW, does anyone know why I needed to link libstdc++ explicitely in my
> testing?
>
Just guessing but maybe it's because of using the `gcc` command instead
of `g++`? I only ever experienced needing to link to it explicitly with
Geany/Scintilla. In my own pure C++ code it's never needed.
Cheers,
Matthew Brush
More information about the Devel
mailing list