繁体   English   中英

如何解决此 Octave pkg 安装错误

[英]How to solve this Octave pkg install error

我尝试使用以下命令安装我的第一个 Octave package: pkg install -forge control 发生以下错误。

octave:1> pkg install -forge control
ld: warning: directory not found for option '-L/usr/local/opt/gcc/lib/gcc/11/gcc/x86_64-apple-darwin20/11'
ld: warning: directory not found for option '-L/usr/local/opt/gcc/lib/gcc/11/gcc/x86_64-apple-darwin20/11/../../..'
ld: library not found for -lgfortran
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [__control_slicot_functions__.oct] Error 1
tar -xzf slicot.tar.gz
/usr/local/Cellar/octave/6.4.0_1/bin/mkoctfile-6.4.0 -Wall -Wno-deprecated-declarations  __control_helper_functions__.cc
mkdir sltmp
mv slicot/src/*.f ./sltmp
mv slicot/src_aux/*.f ./sltmp
if [ "1" = "1" ]; then \
        echo "copy routines using DGGES"; \
        cp SB04OD.fortran ./sltmp/SB04OD.f; \
        cp SG03AD.fortran ./sltmp/SG03AD.f; \
        cp SG03BD.fortran ./sltmp/SG03BD.f; \
    fi;
copy routines using DGGES
cp AB08NX.fortran ./sltmp/AB08NX.f
cp AG08BY.fortran ./sltmp/AG08BY.f
cp SB01BY.fortran ./sltmp/SB01BY.f
cp SB01FY.fortran ./sltmp/SB01FY.f
cp SB06ND.fortran ./sltmp/SB06ND.f
cp TB01MD.fortran ./sltmp/TB01MD.f
cp TB01ND.fortran ./sltmp/TB01ND.f
cp TB01ZD.fortran ./sltmp/TB01ZD.f
cp TG04BX.fortran ./sltmp/TG04BX.f
cp ODLTZM.fortran ./sltmp/ODLTZM.f
cp makefile.slicot ./sltmp/makefile
cd sltmp; /usr/local/Cellar/octave/6.4.0_1/bin/mkoctfile-6.4.0 -w -c MA02ID.f; rm MA02ID.f; /usr/local/Cellar/octave/6.4.0_1/bin/mkoctfile-6.4.0 -c *.f;
ar -rc slicotlibrary.a ./sltmp/*.o
rm -rf sltmp slicot
LDFLAGS="-F/usr/local/opt/qt@5/lib  -L/usr/local/opt/openblas/lib -lopenblas  -L/usr/local/opt/gcc/lib/gcc/11/gcc/x86_64-apple-darwin20/11 -L/usr/local/opt/gcc/lib/gcc/11/gcc/x86_64-apple-darwin20/11/../../.. -lgfortran -lquadmath -lm" \
    /usr/local/Cellar/octave/6.4.0_1/bin/mkoctfile-6.4.0 -Wall -Wno-deprecated-declarations  __control_slicot_functions__.cc common.cc slicotlibrary.a

error: pkg: error running 'make' for the control package.
error: called from
    configure_make at line 110 column 9
    install at line 196 column 7
    pkg at line 568 column 9

我注意到消息的前两行中有关未找到某些目录的警告。 然后我发现正确的路径应该是/usr/local/opt/gcc/lib/gcc/11/gcc/x86_64-apple-darwin21/11/ (darwin 21 ,而不是 20)。

我还检查了 Octave 版本信息: octave --version 它还写道:

GNU Octave, version 6.4.0
...
Octave was configured for "x86_64-apple-darwin20.6.0".

我该如何解决这个问题?

更多信息:

  • macOS 蒙特雷 12.1
  • Octave 6.4.0,随 Homebrew 3.3.9-36-ge970bb1 一起安装

我通过简单地将 sym 链接 21 链接到 20 来实现它:

ln -s x86_64-apple-darwin21 x86_64-apple-darwin20

可能不是正确的方法,但我能够加载控制和信号包。 我想使用的信号 function 似乎正在工作。

我想知道是否有“正确”的方法来解决这个问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM