关于这个主题的Octave文档既吓人又稀疏。
我不知道还能在哪里记录我找到的解决方案,所以我在这里发帖。如果这不合适,我很抱歉,但我想帮助下一个人。
下面的解决方案适用于一个简单的windows可分发文件。
使用案例:
在Octave 3.2.4中开发了一个解决方案,需要分发给几乎没有计算机技能的最终用户。安装和解释Octave是不可能的,解决方案必须是“一键操作”或“脑死亡-简单”。
已知问题:
imread在3.2.4中失败,因为file_in_path.m是错误的。您需要将文件file_in_path.m更新为以下内容(只需替换它):
function name=file_in_path(p,file)
idx=[1 findstr(p,pathsep) length(p)+1];
for i=1:length(idx)-1
if idx(i+1)-idx(i)<=1
dir=strcat(pwd,"/");
else
dir=p(idx(i)+1:idx(i+1)-1);
end
name = fullfile(dir, file);
fid = fopen(name,"r");
if fid >= 0
fclose(fid);
return
end
end
fid = fopen(file,"r");
if fid >= 0,
fclose(fid);
name=file;
return
end
name=[];
发布于 2013-01-09 23:11:49
只是补充一下,如果您想运行脚本而不是m函数,那么embedded.cc代码行:
octave_value_list out = feval ("your_custom_m_file", in);
应该是:
octave_value_list out = feval ("your_custom_m_script");
还可以使用‘the’查找缺少的函数的打包位置。例如,min函数:
octave:22> which min
min
是来自文件C:\Octave\Octave3.6.2_gcc4.6.2\lib\octave\3.6.2\oct\i686-pc-mingw32\max.oct的函数
发布于 2015-07-09 00:08:18
当我将我的自定义m文件链接到一个Octave独立文件时,我发现了一些东西:
使用clean_up_and_exit(0);
时,
#include <octave/toplev.h>
return 0;
(如上所述)如果没有这些步骤,我的程序在退出时就会反复崩溃。
发布于 2015-09-03 23:16:17
运行mkoctfile --link-stand-alone embedded.cc -o embedded
从八度解决方案而不是批处理文件。
刚为你节省了半天时间(-;
https://stackoverflow.com/questions/3843522
复制相似问题