coin-or / qpOASES

Open-source C++ implementation of the recently proposed online active set strategy
GNU Lesser General Public License v2.1
365 stars 127 forks source link

Python interface broken since 3.1.0 #90

Open svigerske opened 4 years ago

svigerske commented 4 years ago

Issue created by migration from Trac.

Original creator: david.cortes

Original creation time: 2018-10-31 20:13:18

Assignee: ferreau

Version: 3.2.1

I've tried installing the Python interface for different qpOASES releases, and it seems the last version that was working was 3.0.0.

For version 3.1.0, the Cython .pyx does not compile, while for 3.2.0 and 3.2.1, it compiles but upon import in Python throws error:


_ZN7qpOASES8QProblemC1EiiNS_11HessianTypeENS_11BooleanTypeE

The 3.0.0 version can be made to compile by replacing the spacing in the .pyx and .pyd file to tabs (instead of 4 spaces) as required by Cython, and works fine when I tried it in Python.

svigerske commented 4 years ago

Comment by @apotschka created at 2019-02-28 11:51:57

Hi David,

sorry for not taking action earlier. I think this is an issue with different -D defines for the compilation of the qpOASES library and the Cython interface. I needed to make sure that -D__USE_LONG_INTEGERS__ was present for both. This was not the case in make_osx.mk. I pushed some updates to the repository in trunk. Does it work for you now?

Best regards,

Andreas

svigerske commented 4 years ago

Comment by david.cortes created at 2019-02-28 18:01:49

Replying to [comment:1 potschka]:

Hi David,

sorry for not taking action earlier. I think this is an issue with different -D defines for the compilation of the qpOASES library and the Cython interface. I needed to make sure that -D__USE_LONG_INTEGERS__ was present for both. This was not the case in make_osx.mk. I pushed some updates to the repository in trunk. Does it work for you now?

Best regards,

Andreas

I, unfortunately nothing changes for me as I was actually building it in Linux. It works fine however (3.2.1) if I remove the macros -D__USE_LONG_INTEGERS__ -D__USE_LONG_FINTS__ from the linux make file.

david-cortes commented 4 years ago

Nice that you're now using GitHub for this project. Would you accept a PR to fix it?