1

我从源代码构建了 IPOPT/usr/local/ 然后我尝试为python安装 ipopt python setup.py install

但是安装程序抱怨(错误)它找不到IpStdCInterface.h
我然后修改 setup.py 文件的内容如下:(第 1 行和第 3 行路径错误)

    IPOPT_ICLUDE_DIRS=['/usr/local/include/coin']
    IPOPT_LIBS=['ipopt', 'coinhsl', 'coinlapack', 'coinblas', 'coinmumps', 'coinmetis']
    IPOPT_LIB_DIRS=['/usr/local/lib/']
    IPOPT_DLL=None

我修改了第一行和第三行以指向正确的目录。

现在,lib目录路径(在上面的第三行中)包含一个名为libipopt.solibipopt.so.0libipopt.la的库文件(同名,不同扩展名)。

设置现在没有抱怨,IpStdCInterface.h但无法找到库

x86_64-linux-gnu-gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -Wl,-z,relro -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -Wdate-time -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wl,-Bsymbolic-functions -Wl,-z,relro -Wdate-time -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security build/temp.linux-x86_64-2.7/src/cyipopt.o -L/usr/local/lib/ -lipopt -lcoinhsl -lcoinlapack -lcoinblas -lcoinmumps -lcoinmetis -o build/lib.linux-x86_64-2.7/ipopt/cyipopt.so
/usr/bin/ld: cannot find -lcoinhsl
/usr/bin/ld: cannot find -lcoinlapack
/usr/bin/ld: cannot find -lcoinblas
/usr/bin/ld: cannot find -lcoinmumps
/usr/bin/ld: cannot find -lcoinmetis
collect2: error: ld returned 1 exit status
error: command 'x86_64-linux-gnu-gcc' failed with exit status 1

这些库应该由 libipopt.so 文件提供吗?还是我需要安装其他软件包?

4

1 回答 1

0

嗯,我和你有同样的问题。我的解决方案是在 .bashrc 中添加以下命令:

export IPOPT_HOME="/opt/CoinIpopt"

export PATH="${PATH}:${IPOPT_HOME}/bin"

export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:${IPOPT_HOME}/lib"

/opt/CoinIpopt 是安装 IpOpt 的路径。

于 2019-03-19T22:41:12.937 回答