在X11平台下qt程序,首先准备好程序中需要使用的资源,库和插件...
比如你的可运行程序取名叫作panel,那把你的panel,那些libQt*.so.4和libQt*.so.4.6.0(链接和共享库都要)放在同一目录下(也可以不同,只要小小修改下shell文件).plugins就不多说了。
在程序的同目录下,新建一個空文档,取名panel.sh (文件名与程序名同名,扩展名为sh,shell文件)。
保存文件,退出。在终端給文件+x属性: 切换到程序的目录,输入
chmod +x panel.sh
然后运行shell文件就行了(确保panel程序具备X属性),它会自动更改环境变量,运行程序。
如果要调试shell文件,只需要在终端输入:
sh -x panel.sh
参考链接
Deploying an Application on X11 Platforms
比如你的可运行程序取名叫作panel,那把你的panel,那些libQt*.so.4和libQt*.so.4.6.0(链接和共享库都要)放在同一目录下(也可以不同,只要小小修改下shell文件).plugins就不多说了。
在程序的同目录下,新建一個空文档,取名panel.sh (文件名与程序名同名,扩展名为sh,shell文件)。
在panel.sh中原封不动的写入以下语句:
- #!/bin/sh
- appname=`basename $0 | sed s,\.sh$,,`
- dirname=`dirname $0`
- tmp="${dirname#?}"
- if [ "${dirname%$tmp}" != "/" ]; then
- dirname=$PWD/$dirname:$LD_LIBRARY_PATH
- fi
- LD_LIBRARY_PATH=$dirname
- export LD_LIBRARY_PATH
- $dirname/$appname $*
保存文件,退出。在终端給文件+x属性: 切换到程序的目录,输入
chmod +x panel.sh
然后运行shell文件就行了(确保panel程序具备X属性),它会自动更改环境变量,运行程序。
如果要调试shell文件,只需要在终端输入:
sh -x panel.sh
这样就ok了。
方法一,也是最简单的,静态连接编译。怎么没有人想到这个?
方法二,动态链接的话,需要将你的可执行文件和so文件放在一块儿,然后写一个脚本,以后就运行脚本就可以了。文件名要相同 后加 .sh
脚本如下。
1
2
3
4
5
6
7
8
9
10
11
12
|
#!/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
"$@"
|
参考链接
Deploying an Application on X11 Platforms