中秋节的歌曲大全100首⾸先,标题略长……
全国二本大学其次,当你看到这个长长的标题并点进来的时候:bro,恭喜你终于到了⼀个⾏之有效的解决⽅案!
~好了,下⾯我们⾔归正传。
关于MATLAB App Designer⾃⾝的介绍不是此⽂重点,不再赘述,相信来到这⾥的⼩伙伴都已经对其有了不同层次的认知。个⼈感
觉,App Designer确实⽐其⾃家的前辈GUIDE更易⽤、⾼效、美观,但在软件⼯具开发层⾯,其依然⽆法和⼤众流⾏的Python、Jave、MS平台相⽐,主要体现在代码架构组织和编辑⽅式让⼈唉声叹⽓、打包软件运⾏效率低得让⼈欲哭⽆泪、软件BUG莫名其妙且百度不得其解、打包运⾏和开发模式下的错误南辕北辙……然⽽,吐槽虽是,但⽆法弃之。为了饭碗,⼀些奇葩的问题还是只能硬着头⽪去搞,⽐如标题所述的问题。
先说下我的开发需求和环境:肉罐头
1)系统软件:Win10+MATLAB2020a版本
如上所述,由于需要加载外部配置⽂件并且不能把⽬录⼀锤定⾳写死,⾃然在.mlapp的脚本中需要涉及路径问题,⼀开始想⽤mfilename 函数获取exe的当前路径,测试过程中发现:
在开发模式下,由于运⾏.mlapp前必须先将相关⽂件夹和⽂件添加到path(否则运⾏直接报错),因此隐藏了mfilename函数实际上⽆法获取exe绝对路径的问题(猜测脚本应该是在path⽬录⾥去了);但是打包成exe⽂件后,不管是安装版还是免安装版,点击运⾏时却存在不到配置⽂件的错误(友情多余提醒:需要在打包时勾选“输出⽇志⽂件”或“显⽰调试窗⼝”的⽅式才能捕捉到详细信息),因为此
时matlab会把整个exe临时复制到以下⽬录(忘了截图了,只能凭印象
了):“C:\Users\Administrator\AppData\Local\Temp\Administrator\MCRInstaller9.9\……”,也即系统默认的⽤户⽂件⽬录,所以此时⾃然也就不到exe同⽬录下的其他⽂件了。
于是,开始了中⽂百度和英⽂⾕歌,各种关键词花式组合搜了好⼏天,看到的搜索结果⼤概有以下⼏
种:
1)很多说可以使⽤mfilename、path函数。
2)部分说可以使⽤cd、which等系统命令查exe⽂件绝对⽬录。
计算机二级报名3)部分说可以使⽤查注册表的⽅式查exe⽂件绝对⽬录……
最后⼀⼀测试,发现结果只有三个字:然并卵!
失败的过程就不啰嗦了,感兴趣的朋友可以去亲⾃体验。⽆奈之下,⼀边骂MATLAB软件开发⽣态的贫瘠,⼀边只能继续冥思苦想(随便瞎试),最后凭运⽓发现:
pwd命令可⽤!
是的,pwd命令在通过⾮快捷⽅式启动运⾏exe时,可以获取到exe所在绝对路径!
exe_abs_fullpath = pwd;
个人住房贷款条件所以,看到这的亲们,你们可以激动得动起你们的⼩⼿试⼀下了!
读取配置文件失败但是,⽆论怎么操作,发现windows平台上⼀个⾃始⾄终⽆法解决的问题:使⽤MATLAB⾃带打包⼯具打包的安装版的exe通过快捷⽅式或开始菜单启动时,pwd命令依然⽆法获取到exe所在⽬录……还有这种骚操作??谁的锅??只能说fck了!
但愿以后不再⽤MATLAB开发客户端软件,愿世界和平!
发布评论