Closed CYDXYYJ closed 1 year ago
If I understand, the instructions should be changed to use the git repo you linked to build a binary for HSL instead of simply using the instructions in the HSL binary. Is that correct?
Yes, it is right. Moreover, as reflected by IPOPT official installation tutorial
ThirdParty-HSL will look automatically for a METIS installation in your system and should work with both METIS 4 and METIS 5
, from which I think that this repo can deal with this error. Nonetheless, the detailed method I proposed above may be not a perfect one as it needs to install some other dynamic library such as Fortran
, etc..
The method we currently have ensures that you link HSL against the same binaries that Ipopt is linked against. This may not be entirely necessary but often is. Maybe there are config options in the repo that you link which we can also do that. I wonder if this issue is because Metis is newly version 5 in conda forge? I didn't have this issue before when I made the documentation instructions.
I highly agree with you that you can do a similar thing based on the repo I propose. Towards the exact reason, I have a similar suspicion as you since the elder version of HSL can make sense, e.g., 2021 version.
The current installation tutorial will result in an error that is
_undefined symbol: metis_nodend__
. Concretely, I found that direct compile and installcoinhsl
package cannot make sense. Instead, utilizing theThirdParty-HSL
can generate a feasible dynamic librarylibcoinhsl.so
. The details are provided as follows:Now unpack the Coin-HSL sources archive, move and rename the resulting directory so that it becomes ThirdParty-HSL/coinhsl. Then, in ThirdParty-HSL, configure, build, and install the HSL sources:
Then, link them.
$ sudo ln -s /usr/local/lib/libcoinhsl.so ~/miniconda/env/hsl-test/lib/libcoinhsl.so