• 6541阅读
  • 11回复

[提问]怎么写文件的路径,在发布程序以后在裸机上正常运行? [复制链接]

上一主题 下一主题
离线liulihuogyh
 

只看楼主 倒序阅读 楼主  发表于: 2013-01-17
我发布一个release版的程序,然后程序中调用了其他的exe程序,可是在虚拟机上运行就打不开调用的exe程序了,应该是文件路径没写对,应该怎么写路径才可以让在其他电脑上程序目录改变以后也正常运行呢?
离线roywillow

只看该作者 1楼 发表于: 2013-01-17
………………
我可以说,使用字符串来写路径么……
你想调用什么程序,它与你的程序是什么关系?
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线liulihuogyh

只看该作者 2楼 发表于: 2013-01-17
回 1楼(roywillow) 的帖子
调用的是exe的 ,是程序中的一个模块,已经存在的了,然后再自己写的程序直接调用,我用的
applicationDirPath存到path里 ,用一个进程打开调用的exe,自己电脑上可以,移植就不行了

比如我 这样写
QString dir = QApplication::applicationDirPath();  
QDir::setCurrent(dir);
process->start("./plugins/xxx.exe");
本地可以运行的
.exe 放在了plugin目录下面了
离线roywillow

只看该作者 3楼 发表于: 2013-01-17
首先检查一下path有没有问题
如果有问题,检查一下path的构造方式有没有问题
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线liulihuogyh

只看该作者 4楼 发表于: 2013-01-17
回 3楼(roywillow) 的帖子
比如我 这样写
QString dir = QApplication::applicationDirPath();  
QDir::setCurrent(dir);
process->start("./plugins/xxx.exe");
本地可以运行的
.exe 放在了plugin目录下面了

但是换个电脑就没反应了 ,是什么情况呢
离线jdwx

只看该作者 5楼 发表于: 2013-01-18
用绝对路径。
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线shiziyang

只看该作者 6楼 发表于: 2013-01-18
直接用 QApplication::applicationDirPath() + "/plugins/xxx.exe"这样的绝对路径试过吗?
离线realfan

只看该作者 7楼 发表于: 2013-01-18
你确定不能运行是路径问题吗?会不会其它电脑上少了依赖的dll或插件什么的
离线liulihuogyh

只看该作者 8楼 发表于: 2013-01-19
回 6楼(shiziyang) 的帖子
就是这么弄的 可是行不通啊
离线liulihuogyh

只看该作者 9楼 发表于: 2013-01-19
回 7楼(realfan) 的帖子
不是吧 如果少插件会有提示的 但是只是没反应 应该还是路径问题
离线roywillow

只看该作者 10楼 发表于: 2013-01-19
回 9楼(liulihuogyh) 的帖子
缺少插件不一定会提示,不过我也想不出来你这个程序需要啥插件
你确定是路径问题,而不是程序发布的问题,或者那个exe的问题?
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线liulihuogyh

只看该作者 11楼 发表于: 2013-01-20
回 10楼(roywillow) 的帖子
是不是那个exe的问题还真不清楚了,不过qt需要发布用的插件都存在了,再查查了,第一次接项目,技术浅 额
快速回复
限100 字节
 
上一个 下一个