Matlab 在Octave 4.2中安装通信包时出现问题

Matlab 在Octave 4.2中安装通信包时出现问题,matlab,signals,octave,Matlab,Signals,Octave,我在Ubuntu18上安装Octave的通讯软件包时遇到问题。我从安装liboctave开始 sudo apt-get install liboctave-dev 然后,我为通信包安装了Dependency软件包: pkg install control-3.1.0.tar.gz pkg install signal-1.4.0.tar.gz pkg install communications-1.2.1.tar.gz 当我到达第三个命令时,它给了我这个错误,这可能是由于使用了不推荐的

我在Ubuntu18上安装Octave的通讯软件包时遇到问题。我从安装liboctave开始

sudo apt-get install liboctave-dev
然后,我为通信包安装了Dependency软件包:

pkg install control-3.1.0.tar.gz

pkg install signal-1.4.0.tar.gz

pkg install communications-1.2.1.tar.gz
当我到达第三个命令时,它给了我这个错误,这可能是由于使用了不推荐的代码:

    cyclpoly.cc: In function ‘Array<int> filter_gf2(const Array<int>&, const Array<int>&, const Array<int>&,const int&)’: cyclpoly.cc:41:25: warning: ‘octave_idx_type Array<T>::length() const [with T = int; octave_idx_type = int]’ is deprecated: use 'numel' instead [-Wdeprecated-declarations]    int x_len = x.length ();
                         ^ In file included from /usr/include/octave-4.2.2/octave/../octave/Sparse.h:37:0,
                 from /usr/include/octave-4.2.2/octave/../octave/MSparse.h:31,
                 from /usr/include/octave-4.2.2/octave/../octave/MatrixType.h:29,
                 from /usr/include/octave-4.2.2/octave/../octave/mx-base.h:30,
                 from /usr/include/octave-4.2.2/octave/../octave/Matrix.h:32,
                 from /usr/include/octave-4.2.2/octave/../octave/oct.h:30,
                 from cyclpoly.cc:24: /usr/include/octave-4.2.2/octave/../octave/Array.h:354:19: note: declared here    octave_idx_type length (void) const { return numel (); }
                   ^~~~~~ cyclpoly.cc: In function ‘octave_value_list Fcyclpoly(const octave_value_list&, int)’: cyclpoly.cc:220:55: warning: ‘octave_idx_type Array<T>::length() const [with T = double; octave_idx_type= int]’ is deprecated: use 'numel' instead [-Wdeprecated-declarations]
             cyclic_polys.resize (cyclic_polys.length ()+1);
                                                       ^ In file included from /usr/include/octave-4.2.2/octave/../octave/Sparse.h:37:0,
                 from /usr/include/octave-4.2.2/octave/../octave/MSparse.h:31,
                 from /usr/include/octave-4.2.2/octave/../octave/MatrixType.h:29,
                 from /usr/include/octave-4.2.2/octave/../octave/mx-base.h:30,
                 from /usr/include/octave-4.2.2/octave/../octave/Matrix.h:32,
                 from /usr/include/octave-4.2.2/octave/../octave/oct.h:30,
                 from cyclpoly.cc:24: /usr/include/octave-4.2.2/octave/../octave/Array.h:354:19: note: declared here    octave_idx_type length (void) const { return numel (); }
                   ^~~~~~ cyclpoly.cc:221:47: warning: ‘octave_idx_type Array<T>::length() const [with T = double; octave_idx_type= int]’ is deprecated: use 'numel' instead [-Wdeprecated-declarations]
             cyclic_polys(cyclic_polys.length ()-1) = (double)i;
                                               ^ In file included from /usr/include/octave-4.2.2/octave/../octave/Sparse.h:37:0,
                 from /usr/include/octave-4.2.2/octave/../octave/MSparse.h:31,
                 from /usr/include/octave-4.2.2/octave/../octave/MatrixType.h:29,
                 from /usr/include/octave-4.2.2/octave/../octave/mx-base.h:30,
                 from /usr/include/octave-4.2.2/octave/../octave/Matrix.h:32,
                 from /usr/include/octave-4.2.2/octave/../octave/oct.h:30,
                 from cyclpoly.cc:24: /usr/include/octave-4.2.2/octave/../octave/Array.h:354:19: note: declared here    octave_idx_type length (void) const { return numel (); }
                   ^~~~~~ cyclpoly.cc:236:61: warning: ‘octave_idx_type Array<T>::length() const [with T = double; octave_idx_type= int]’ is deprecated: use 'numel' instead [-Wdeprecated-declarations]
                   cyclic_polys.resize (cyclic_polys.length ()+1);
                                                             ^ In file included from /usr/include/octave-4.2.2/octave/../octave/Sparse.h:37:0,
                 from /usr/include/octave-4.2.2/octave/../octave/MSparse.h:31,
                 from /usr/include/octave-4.2.2/octave/../octave/MatrixType.h:29,
                 from /usr/include/octave-4.2.2/octave/../octave/mx-base.h:30,
                 from /usr/include/octave-4.2.2/octave/../octave/Matrix.h:32,
                 from /usr/include/octave-4.2.2/octave/../octave/oct.h:30,
                 from cyclpoly.cc:24: /usr/include/octave-4.2.2/octave/../octave/Array.h:354:19: note: declared here    octave_idx_type length (void) const { return numel (); }
                   ^~~~~~ cyclpoly.cc:237:53: warning: ‘octave_idx_type Array<T>::length() const [with T = double; octave_idx_type= int]’ is deprecated: use 'numel' instead [-Wdeprecated-declarations]
                   cyclic_polys(cyclic_polys.length ()-1) = (double)i;
                                                     ^ In file included from /usr/include/octave-4.2.2/octave/../octave/Sparse.h:37:0,
                 from /usr/include/octave-4.2.2/octave/../octave/MSparse.h:31,
                 from /usr/include/octave-4.2.2/octave/../octave/MatrixType.h:29,
                 from /usr/include/octave-4.2.2/octave/../octave/mx-base.h:30,
                 from /usr/include/octave-4.2.2/octave/../octave/Matrix.h:32,
                 from /usr/include/octave-4.2.2/octave/../octave/oct.h:30,
                 from cyclpoly.cc:24: /usr/include/octave-4.2.2/octave/../octave/Array.h:354:19: note: declared here    octave_idx_type length (void) const { return numel (); }
                   ^~~~~~ cyclpoly.cc:247:28: warning: ‘octave_idx_type Array<T>::length() const [with T = double; octave_idx_type= int]’ is deprecated: use 'numel' instead [-Wdeprecated-declarations]    if (cyclic_polys.length () == 0)
                            ^ In file included from /usr/include/octave-4.2.2/octave/../octave/Sparse.h:37:0,
                 from /usr/include/octave-4.2.2/octave/../octave/MSparse.h:31,
                 from /usr/include/octave-4.2.2/octave/../octave/MatrixType.h:29,
                 from /usr/include/octave-4.2.2/octave/../octave/mx-base.h:30,
                 from /usr/include/octave-4.2.2/octave/../octave/Matrix.h:32,
                 from /usr/include/octave-4.2.2/octave/../octave/oct.h:30,
                 from cyclpoly.cc:24: /usr/include/octave-4.2.2/octave/../octave/Array.h:354:19: note: declared here    octave_idx_type length (void) const { return numel (); }
                   ^~~~~~ cyclpoly.cc:257:46: warning: ‘octave_idx_type Array<T>::length() const [with T = double; octave_idx_type= int]’ is deprecated: use 'numel' instead [-Wdeprecated-declarations]
           Matrix polys (cyclic_polys.length (), m+1, 0);
                                              ^ In file included from /usr/include/octave-4.2.2/octave/../octave/Sparse.h:37:0,
                 from /usr/include/octave-4.2.2/octave/../octave/MSparse.h:31,
                 from /usr/include/octave-4.2.2/octave/../octave/MatrixType.h:29,
                 from /usr/include/octave-4.2.2/octave/../octave/mx-base.h:30,
                 from /usr/include/octave-4.2.2/octave/../octave/Matrix.h:32,
                 from /usr/include/octave-4.2.2/octave/../octave/oct.h:30,
                 from cyclpoly.cc:24: /usr/include/octave-4.2.2/octave/../octave/Array.h:354:19: note: declared here    octave_idx_type length (void) const { return numel (); }
                   ^~~~~~ cyclpoly.cc:258:53: warning: ‘octave_idx_type Array<T>::length() const [with T = double; octave_idx_type= int]’ is deprecated: use 'numel' instead [-Wdeprecated-declarations]
           for (int i = 0 ; i < cyclic_polys.length (); i++)
                                                     ^ In file included from /usr/include/octave-4.2.2/octave/../octave/Sparse.h:37:0,
                 from /usr/include/octave-4.2.2/octave/../octave/MSparse.h:31,
                 from /usr/include/octave-4.2.2/octave/../octave/MatrixType.h:29,
                 from /usr/include/octave-4.2.2/octave/../octave/mx-base.h:30,
                 from /usr/include/octave-4.2.2/octave/../octave/Matrix.h:32,
                 from /usr/include/octave-4.2.2/octave/../octave/oct.h:30,
                 from cyclpoly.cc:24: /usr/include/octave-4.2.2/octave/../octave/Array.h:354:19: note: declared here    octave_idx_type length (void) const { return numel (); }
                   ^~~~~~ cyclgen.cc: In function ‘Array<int> filter_gf2(const Array<int>&, const Array<int>&, const Array<int>&, const int&)’: cyclgen.cc:32:25: warning: ‘octave_idx_type Array<T>::length() const [with T = int; octave_idx_type = int]’ is deprecated: use 'numel' instead [-Wdeprecated-declarations]    int x_len = x.length ();
                         ^ In file included from /usr/include/octave-4.2.2/octave/../octave/Sparse.h:37:0,
                 from /usr/include/octave-4.2.2/octave/../octave/MSparse.h:31,
                 from /usr/include/octave-4.2.2/octave/../octave/MatrixType.h:29,
                 from /usr/include/octave-4.2.2/octave/../octave/mx-base.h:30,
                 from /usr/include/octave-4.2.2/octave/../octave/Matrix.h:32,
                 from /usr/include/octave-4.2.2/octave/../octave/oct.h:30,
                 from cyclgen.cc:23: /usr/include/octave-4.2.2/octave/../octave/Array.h:354:19: note: declared here    octave_idx_type length (void) const { return numel (); }
                   ^~~~~~ In file included from galois.h:24:0,
                 from galois-def.cc:21: /usr/include/octave-4.2.2/octave/../octave/config.h:28:2: warning:
#warning "config.h has been deprecated; there is no need to include it directly" [-Wcpp]  #warning "config.h has been deprecated; there is no need to include it directly"   ^~~~~~~ In file included from galois-def.cc:21:0: galois.h:25:10: fatal error: octave/base-lu.h: No such file or directory  #include <octave/base-lu.h>
          ^~~~~~~~~~~~~~~~~~ compilation terminated. make: *** [galois-def.o] Error 1 make: *** Waiting for unfinished jobs.... genqamdemod.cc: In function ‘octave_value_list Fgenqamdemod(const octave_value_list&, int)’: genqamdemod.cc:39:57: warning: ‘int empty_arg(const char*, octave_idx_type, octave_idx_type)’ is deprecated: use 'octave_value::is_empty' instead [-Wdeprecated-declarations]    int arg_is_empty1 = empty_arg ("genqamdemod", nr1, nc1);
                                                         ^ In file included from /usr/include/octave-4.2.2/octave/../octave/oct.h:40:0,
                 from genqamdemod.cc:17: /usr/include/octave-4.2.2/octave/../octave/utils.h:58:26: note: declared here  extern OCTINTERP_API int empty_arg (const char *name, octave_idx_type nr,
                          ^~~~~~~~~ make: Entering directory '/tmp/oct-OcFw19/communications-1.2.1/src' /usr/bin/mkoctfile
-DGALOIS_DISP_PRIVATES -DHAVE_OCTAVE_HDF5_ID_TYPE=1 __errcore__.cc -o __errcore__.oct /usr/bin/mkoctfile -DGALOIS_DISP_PRIVATES -DHAVE_OCTAVE_HDF5_ID_TYPE=1 __gfweight__.cc -o __gfweight__.oct /usr/bin/mkoctfile -DGALOIS_DISP_PRIVATES -DHAVE_OCTAVE_HDF5_ID_TYPE=1 cyclgen.cc -o cyclgen.oct /usr/bin/mkoctfile -DGALOIS_DISP_PRIVATES
-DHAVE_OCTAVE_HDF5_ID_TYPE=1 cyclpoly.cc -o cyclpoly.oct /usr/bin/mkoctfile -DGALOIS_DISP_PRIVATES -DHAVE_OCTAVE_HDF5_ID_TYPE=1 genqamdemod.cc -o genqamdemod.oct /usr/bin/mkoctfile
-DGALOIS_DISP_PRIVATES -DHAVE_OCTAVE_HDF5_ID_TYPE=1 -c galois-def.cc -o galois-def.o Makefile:45: recipe for target 'galois-def.o' failed make: Leaving directory '/tmp/oct-OcFw19/communications-1.2.1/src'

pkg: error running `make' for the communications package. error: called from
    configure_make at line 95 column 9
    install at line 194 column 7
    pkg at line 394 column 9
cyclpoly.cc:infunction'Array filter_gf2(const-Array&,const-Array&,const-Array&,const-int&),cyclpoly.cc:41:25:warning:'octave\u-idx\u-type-Array::length()const[with T=int;octave\u-idx\u-type=int]'不推荐使用'numel'代替[-Wdeprecated声明]int x\u-leng=x.length();
^在/usr/include/octave-4.2.2/octave/。/octave/Sparse.h:37:0中包含的文件中,
from/usr/include/octave-4.2.2/octave/。/octave/MSparse.h:31,
from/usr/include/octave-4.2.2/octave/。/octave/MatrixType.h:29,
从/usr/include/octave-4.2.2/octave/。/octave/mx base.h:30,
来自/usr/include/octave-4.2.2/octave/。/octave/Matrix.h:32,
从/usr/include/octave-4.2.2/octave/。/octave/oct.h:30,
来自cyclpoly.cc:24:/usr/include/octave-4.2.2/octave/。/octave/Array.h:354:19:注意:此处声明octave_idx_type length(void)const{return numel();}
^~~~~~cyclpoly.cc:在函数“octave\u value\u list Fcyclpoly(const octave\u value\u list&,int)”中:cyclpoly.cc:220:55:警告:“octave\u idx\u type数组::length()const[with T=double;octave\u idx\u type=int]”不推荐使用:改用“numel”[-Wdeprecated声明]
循环多边形调整大小(循环多边形长度()+1);
^在/usr/include/octave-4.2.2/octave/。/octave/Sparse.h:37:0中包含的文件中,
from/usr/include/octave-4.2.2/octave/。/octave/MSparse.h:31,
from/usr/include/octave-4.2.2/octave/。/octave/MatrixType.h:29,
从/usr/include/octave-4.2.2/octave/。/octave/mx base.h:30,
来自/usr/include/octave-4.2.2/octave/。/octave/Matrix.h:32,
从/usr/include/octave-4.2.2/octave/。/octave/oct.h:30,
来自cyclpoly.cc:24:/usr/include/octave-4.2.2/octave/。/octave/Array.h:354:19:注意:此处声明octave_idx_type length(void)const{return numel();}
^~~~~cyclpoly.cc:221:47:警告:“不推荐使用倍频程idx类型数组::长度()常量[T=double;倍频程idx类型=int]:改用“numel”[-Wdeprecated声明]
循环多边形(循环多边形长度()-1)=(双)i;
^在/usr/include/octave-4.2.2/octave/。/octave/Sparse.h:37:0中包含的文件中,
from/usr/include/octave-4.2.2/octave/。/octave/MSparse.h:31,
from/usr/include/octave-4.2.2/octave/。/octave/MatrixType.h:29,
从/usr/include/octave-4.2.2/octave/。/octave/mx base.h:30,
来自/usr/include/octave-4.2.2/octave/。/octave/Matrix.h:32,
从/usr/include/octave-4.2.2/octave/。/octave/oct.h:30,
来自cyclpoly.cc:24:/usr/include/octave-4.2.2/octave/。/octave/Array.h:354:19:注意:此处声明octave_idx_type length(void)const{return numel();}
^~~~~cyclpoly.cc:236:61:警告:“不推荐使用倍频程idx类型数组::长度()常量[with T=double;octave idx类型=int]:改用“numel”[-Wdeprecated声明]
循环多边形调整大小(循环多边形长度()+1);
^在/usr/include/octave-4.2.2/octave/。/octave/Sparse.h:37:0中包含的文件中,
from/usr/include/octave-4.2.2/octave/。/octave/MSparse.h:31,
from/usr/include/octave-4.2.2/octave/。/octave/MatrixType.h:29,
从/usr/include/octave-4.2.2/octave/。/octave/mx base.h:30,
来自/usr/include/octave-4.2.2/octave/。/octave/Matrix.h:32,
从/usr/include/octave-4.2.2/octave/。/octave/oct.h:30,
来自cyclpoly.cc:24:/usr/include/octave-4.2.2/octave/。/octave/Array.h:354:19:注意:此处声明octave_idx_type length(void)const{return numel();}
^~cyclepoly.cc:237:53:警告:“不推荐使用倍频程idx类型数组::长度()常量[with T=double;octave idx类型=int]:改用“numel”[-Wdeprecated声明]
循环多边形(循环多边形长度()-1)=(双)i;
^在/usr/include/octave-4.2.2/octave/。/octave/Sparse.h:37:0中包含的文件中,
from/usr/include/octave-4.2.2/octave/。/octave/MSparse.h:31,
from/usr/include/octave-4.2.2/octave/。/octave/MatrixType.h:29,
从/usr/include/octave-4.2.2/octave/。/octave/mx base.h:30,
来自/usr/include/octave-4.2.2/octave/。/octave/Matrix.h:32,
从/usr/include/octave-4.2.2/octave/。/octave/oct.h:30,
来自cyclpoly.cc:24:/usr/include/octave-4.2.2/octave/。/octave/Array.h:354:19:注意:此处声明octave_idx_type length(void)const{return numel();}
^~cyclepoly.cc:247:28:警告:“不推荐使用倍频程idx类型数组::长度()常量[with T=double;octave idx类型=int]:如果(cyclic\u polys.length()==0),请改用“numel”[-Wdeprecated声明]
^在/usr/include/octave-4.2.2/octave/。/octave/Sparse.h:37:0中包含的文件中,
from/usr/include/octave-4.2.2/octave/。/octave/MSparse.h:31,
from/usr/include/octave-4.2.2/octave/。/octave/MatrixType.h:29,
从/usr/include/octave-4.2.2/octave/。/octave/mx base.h:30,
来自/usr/include/octave-4.2.2/octave/。/octave/Matrix.h:32,
sudo apt-get update
sudo apt-get install octave-communications
>> pkg list
Package Name    | Version | Installation directory
----------------+---------+-----------------------
communications *|   1.2.1 | /usr/share/octave/packages/communications-1.2.1
       control *|   3.2.0 | /home/hugo/octave/control-3.2.0
        signal  |   1.4.1 | /home/hugo/octave/signal-1.4.1