Hi,
Let me be more explicit:
If my BOOST thing is: BOOST_PYTHON_MODULE(opus_encoder_strategy) and my
Makefile is like this:
all: opus_encoder_strategy.so
opus_encoder_strategy.so: opus_encoder_strategy.o
${CC} ${CInc} ${CLinkFlags} $^ -o $@
opus_encoder_strategy.o: opus_encoder_strategy.cpp
${CC} ${CFLAGS} ${CInc} opus_encoder_strategy.cpp -o
opus_encoder_strategy.o
and I build the name of the .so file to be opus_encoder_strategy.so, then I am
able to access the embedded class.
HOWEVER, if I change the BOOST thing to BOOST_PYTHON_MODULE(opus_strategy) and
my make file to this:
all: opus_strategy.so #lv2strategy.so
opus_strategy.so: opus_strategy.o
${CC} ${CInc} ${CLinkFlags} $^ -o $@
opus_strategy.o: opus_encoder_strategy.cpp
${CC} ${CFLAGS} ${CInc} opus_encoder_strategy.cpp -o opus_strategy.o
it doesn’t work.
NOTE that I am matching the BOOST thing to the name of the .so file, this case
opus_strategy.so
It seems that it is looking at something else like the actual name of the cpp
file or cpp file? This makes no sense to me and there is no documentation on
how to properly use this.
I am using python 3. Is this an issue. The documentation needs substantial
improvement and clarification.
Please advise ASAP.
-Jon
> On Sep 9, 2016, at 4:07 AM, Holger Joukl <[email protected]> wrote:
>
> Hi,
>
> "Cplusplus-sig" <[email protected]>
> schrieb am 09.09.2016 02:33:57:
>
>> Hi,
>>
>> And here is yet another person who seems to encounter the same issue:
>> http://stackoverflow.com/questions/9140572/c-boost-python-2-problems
>>
>> -Jon
>
> Python expects an init function for extension modules named initNAME
> where NAME is the name of the extension module, i.e. NAME.so.
> (see https://docs.python.org/2/extending/extending.html)
>
> BOOST_PYTHON_MODULE is boost.python's macro for automagically giving you
> such
> an init function.
>
> So in the directives
> - in the boost.python wrapper code: BOOST_PYTHON_MODULE(NAME)
> - in the Jamroot file: python-extension NAME
> (or maybe if you compile without bjam, in your g++ link step the -o
> Parameter:
> g++ -shared -oNAME.so -Wl,-h -Wl,NAME.so ...
> # don't know if the SONAME setting (-Wl,-h -Wl,NAME.so) must also match as
> # Python dlopen()s the extension)
>
> NAME must be consistent.
>
> Holger
>
> Landesbank Baden-Wuerttemberg
> Anstalt des oeffentlichen Rechts
> Hauptsitze: Stuttgart, Karlsruhe, Mannheim, Mainz
> HRA 12704
> Amtsgericht Stuttgart
>
> _______________________________________________
> Cplusplus-sig mailing list
> [email protected]
> https://mail.python.org/mailman/listinfo/cplusplus-sig
_______________________________________________
Cplusplus-sig mailing list
[email protected]
https://mail.python.org/mailman/listinfo/cplusplus-sig