Boost logo

Boost Users :

From: Roy de Bokx (rdebokx1990_at_[hidden])
Date: 2021-02-22 14:49:11


Op vr 19 feb. 2021 om 22:05 schreef Nathan Ernst via Boost-users <
boost-users_at_[hidden]>:

> The missing symbols you quoted come from python itself. It looks like
> you're missing a "-lpython" linker flag.
>
Thanks! That definitely put me on the right track. Eventually I got it
working using the "-lpython3.6m" flag, since I found that the Python3.6 .so
file was situated at /usr/lib/x86_64-linux-gnu/libpython3.6m.so
 Many thanks, this is much appreciated! I've pasted the full Dockerfile in
https://github.com/boostorg/boost/issues/462, in case anyone is interested.

>
> Regards,
> Nathan
>
> On Fri, Feb 19, 2021, 4:47 AM Roy de Bokx via Boost-users <
> boost-users_at_[hidden]> wrote:
>
>>
>>
>> Op wo 17 feb. 2021 om 20:30 schreef Anonymous Maarten <
>> anonymous.maarten_at_[hidden]>:
>>
>>> Thanks for your answer Maarten!
>>>> Please bare with me as I'm a little new to this. Is there some way I
>>>> can change the interpreter that is used for installing boost? Or do you
>>>> think that adapting the --prefix flag may also work?
>>>>
>>>
>>> When using the pre-built boost packages of a linux distribution
>>> (ubuntu), you're generally stuck with the versions/options that its
>>> packagers have chosen.
>>> A distribution freezes versions to make a more robust experience.
>>>
>>> Adding a `--prefix` will not help because, first of all, it's not a
>>> valid gcc option, and second, ubuntu 18.04 does not provide a
>>> libboost-python-py37 shared/static library.
>>> Do you really need python 3.7? Doesn't 3.6 suffice?
>>>
>>
>> Thanks! This helped me understanding the issue a bit further. I think 3.6
>> should suffice indeed, so I tried using 3.6 by removing the 3.7
>> installation from the Dockerfile and using the -lboost_numpy3 flag instead.
>> It seems I ran into some linking issue after this. It was able to find
>> the right numpy3.so and libboost_python3-py36.so, but I'm getting a lot of
>> errors like these:
>>
>> //usr/lib/x86_64-linux-gnu/libboost_numpy3.so: undefined reference to
>> `PyExc_ValueError'
>>
>> //usr/lib/x86_64-linux-gnu/libboost_python3-py36.so.1.65.1: undefined
>> reference to `PyLong_AsLong'
>>
>> //usr/lib/x86_64-linux-gnu/libboost_python3-py36.so.1.65.1: undefined
>> reference to `PyNumber_InPlaceFloorDivide'
>>
>> //usr/lib/x86_64-linux-gnu/libboost_python3-py36.so.1.65.1: undefined
>> reference to `PyBool_Type'
>> etc...
>>
>> I've pasted the full docker file and logs in
>> https://github.com/boostorg/boost/issues/462
>> Thanks again for any help.
>>
>>>
>>> If you really want to use Boost.Python + python 3.7, you can do 2 things:
>>> - stay on ubuntu bionic and build boost yourself (or use an alternative
>>> c/c++ package manager, e.g. [conan](https://conan.io/) has a [boost
>>> package](https://conan.io/center/boost))
>>> - more to a more recent ubuntu release. e.g. ubuntu 20.10 has python
>>> 3.8:
>>> https://packages.ubuntu.com/groovy/amd64/libboost-python1.71-dev/filelist
>>>
>> I've also given 20.10 a try, however I ran into the same linking issues
>> as mentioned above.
>>
>>>
>>>
>>>
>>> _______________________________________________
>> Boost-users mailing list
>> Boost-users_at_[hidden]
>> https://lists.boost.org/mailman/listinfo.cgi/boost-users
>>
> _______________________________________________
> Boost-users mailing list
> Boost-users_at_[hidden]
> https://lists.boost.org/mailman/listinfo.cgi/boost-users
>



Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net