• 3644阅读
  • 2回复

[提问]关于Qt文档中提供的Linux下程序发布所使用的脚本的问题 [复制链接]

上一主题 下一主题
离线roywillow
 

只看楼主 倒序阅读 楼主  发表于: 2011-12-03
Qt文档中提供了一个启动程序时的脚本,通过这个脚本似乎是可以临时将当前文件加入环境变量中(不过具体是什么含义真心看不懂……)。

#!/bin/sh
appname=`basename $0 | sed s,\.sh$,,`

dirname=`dirname $0`
tmp="${dirname#?}"

if [ "${dirname%$tmp}" != "/" ]; then
dirname=$PWD/$dirname
fi
LD_LIBRARY_PATH=$dirname
export LD_LIBRARY_PATH
$dirname/$appname "$@"

之前这个脚本在Ubuntu下运行挺顺利,但是今天在Kubuntu下尝试了一下,虽然程序能够顺利运行(不止是依赖Qt库),但是发现好像对于之前生成的存放在程序文件夹中的配置文件无法读取。然后尝试在终端中cd到那个文件夹,再执行脚本就正常了……
所以我猜测是因为工作目录在双击脚本执行的时候没有被设置到当前文件夹?能不能不在代码中强制修改工作目录,而是通过这个脚本进行设置的方法?
或者说……其实这是Dolphin的问题……?


专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线ninsun

只看该作者 1楼 发表于: 2011-12-05
在程序里把QCoreApplication::applicationDirPath()输出一下看看呗...
哦...不对,应该是用QCoreApplication::applicationDirPath()作为相对路径的起始位置呗....
离线dbzhang800

只看该作者 2楼 发表于: 2011-12-05
引用楼主roywillow于2011-12-03 21:23发表的 关于Qt文档中提供的Linux下程序发布所使用的脚本的问题 :
Qt文档中提供了一个启动程序时的脚本,通过这个脚本似乎是可以临时将当前文件夹加入环境变量中(不过具体是什么含义真心看不懂……)。
#!/bin/sh
appname=`basename $0 | sed s,\.sh$,,`
.......

在终端/虚拟控制台下没有问题,就可以说明脚本正常的。

如果要双击运行,你需要的应该是一个启动器,使用该启动器来调用你这个脚本,同时,你也可以为其指定一个图标 等等其他信息。
快速回复
限100 字节
 
上一个 下一个