octave独立的,示例报告对`octave :: feval错误的未定义引用

问题描述

尝试第二个示例https://octave.org/doc/v5.1.0/Standalone-Programs.html#Standalone-Programs时,出现以下错误

embedded.cc:(.text+0x132): undefined reference to `octave::feval(std::__cxx11::basic_string<char,std::char_traits<char>,std::allocator<char> > const&,octave_value_list const&,int)'

mkoctfile的-d选项提供以下两个g ++命令,其中第一个可以正常工作。

g++ -std=gnu++11 -c  -fPIC -I/grid/common/pkgsData/octave-v5.1.0/Linux/RHEL7.0-2017-x86_64/include/octave-5.1.0/octave/.. -I/grid/common/pkgsData/octave-v5.1.0/Linux/RHEL7.0-2017-x86_64/include/octave-5.1.0/octave -I/grid/common/pkgsData/octave-v5.1.0/Linux/RHEL7.0-2017-x86_64/include  -pthread -fopenmp -fPIC    embedded.cc -o /tmp/oct-EYDDih.o

g++ -std=gnu++11  -I/grid/common/pkgsData/octave-v5.1.0/Linux/RHEL7.0-2017-x86_64/include/octave-5.1.0/octave/.. -I/grid/common/pkgsData/octave-v5.1.0/Linux/RHEL7.0-2017-x86_64/include/octave-5.1.0/octave -I/grid/common/pkgsData/octave-v5.1.0/Linux/RHEL7.0-2017-x86_64/include  -pthread -fopenmp -fPIC -rdynamic  -fPIC   -o embedded  /tmp/oct-EYDDih.o    -L/grid/common/pkgsData/octave-v5.1.0/Linux/RHEL7.0-2017-x86_64/lib -L/grid/common/pkgsData/octave-v5.1.0/Linux/RHEL7.0-2017-x86_64/lib/octave/5.1.0 -loctinterp -loctave   

有什么办法解决这个问题吗?

解决方法

我发现此问题的根本原因是,加载了一个EDA工具(Cadence Xcelium)模块,该模块使g ++指向其私有版本,当我用/ bin / g ++替换g ++时,它可以在我的环境中运行。