Octave编译遇到的坑

本文记录了在Windows上编译Octave的过程,包括在Linux和Windows下的尝试,遇到的库版本不匹配、错误报告、动态库链接失败、找不到符号等问题,以及如何解决这些问题,如手动添加LAPACK链接、关闭不必要的模块等。最终成功编译出适合嵌入计算的轻量级Octave库。
摘要由CSDN通过智能技术生成

想用Octave做嵌入计算,可以直接调用.m文件。想法很好,结果遇到了一系列的坑,有的跳出来了,有的还没填上。

首先,看到Octave需要Linux的编译环境,那就先在Linux下试试。正好有DeepIn系统,下了Octave 6.3的源代码,开始尝试。结果一编译,发现DeepIn的好多库与Octave需要的库版本不符,编译不通过。只好从configure的选项中,一个一个屏蔽牵连的模块,最终生成了一个没有图形功能的Octave。经测试,可以嵌入到代码中,执行正常。

其次,想试试Windows下是否能行。先下载了已编译好的Octave二进制代码,按照Linux下的代码再来一遍,也能运行。但是每次在octave::interpreter析构时会报告两个错误,很不爽。搜到很久以前的BUG报告,可能是析构时内部符号表被释放后又使用了,到现在还没修复吗?无论如何,要想躲开这个错误,还是要在Windows下编译Octave。

于是,决定按照Octave Wiki(Building on Microsoft Windows - Octave)的方法,在Windows下用MSYS2编译Octave。按照流程下载了所有需要的库,下载了最新的Octave源代码,然后编译,大概半小时后失败。看输出,是发生在链接生成动态库的最后一步出的错,但是没有任何具体提示,只是说失败了。

为了取得具体的错误信息,

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
Octave中,eval函数的作用是将字符串作为命令执行。通过eval函数,可以动态地执行字符串中包含的Octave命令。例如,可以使用eval函数来给变量赋值,执行数学运算等操作。与MatLab相比,Octave的eval函数用法基本相同。 引用中给出了一个示例,使用eval函数将字符串中的命令执行。首先,将字符串str设置为['dsfd',num2str(4)],然后通过eval函数执行命令eval( [str, '= zeros(1,6)'])。这个命令的作用是将变量dsfd4赋值为一个6个元素全为0的向量。 在引用中提到,MatLab和Octave在运算符方面是兼容的。因此,在Octave中,可以使用x^2或者x**2来表示x的平方。 然而,引用指出MatLab和Octave在输出方面是不同的。在Octave中,输出结果可能会以不同的方式显示,并且与MatLab可能存在差异。因此,在使用eval函数时,特别是涉及到输出结果的情况下,需要注意这种差异。 总而言之,Octave的eval函数可以用于执行字符串中包含的Octave命令,并且与MatLab的eval函数用法基本相同。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Octave 数字转字符,连接两个字符串,以及如何将字符串转换为变量名称](https://blog.csdn.net/qq_32651245/article/details/110338367)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Octave:矩阵计算的新宠](https://blog.csdn.net/weixin_34194087/article/details/91586458)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值