如何在Ubuntu WSL2环境下编译MPSolve 3.2.1?
解决Ubuntu WSL2上编译MPSolve 3.2.1的Octave接口错误
方案1:禁用Octave接口编译(推荐)
如果不需要MPSolve的Octave插件,直接在配置阶段关闭该功能,执行以下命令:
tar xvf mpsolve-3.2.1.tar.gz cd mpsolve-3.2.1 ./configure --disable-octave make sudo make install
方案2:修改源代码适配新版Octave(需保留Octave接口)
错误源于新版Octave移除了旧API,修改src/octave/mps_roots.cc文件:
- 第96行:将
args(1).is_map()替换为args(1).isstruct() - 第182行:将
starting_points.length()替换为starting_points.numel()
修改完成后,重新执行编译流程:
./configure make sudo make install
方案3:安装兼容的旧版Octave
若不想修改代码,可安装保留旧API的Octave 5.x版本:
sudo add-apt-repository ppa:octave/stable-5 sudo apt update sudo apt install octave liboctave-dev
安装完成后再执行原编译命令即可。
内容的提问来源于stack exchange,提问作者atomickitten
相关产品推荐
相关产品推荐

