打包Qt 在ubuntu下运行的应用程序

标题使用Qt Installer Framework工具进行打包Qt 在ubuntu下运行的应用程序

使用Qt Installer Framework工具进行打包,使用官网example中的tutorial

将Qt生成的应用程序拷贝到/xxx/package-file/tutorial/packages/com.vendor.product/data 文件夹下

创建pack.sh脚本

输入以下内容
#!/bin/sh  
exe="xinput" #你需要发布的程序名称
des="/home/touch/workspace/xinput/package-file/xinput-setup" 		#创建文件夹的位置
deplist=$(ldd $exe | awk  '{if (match($3,"/")){ printf("%s "),$3 } }')  
cp $deplist $des

该脚本会将程序所依赖的库拷贝过来

修改config.xml

/home/touch/workspace/xinput/package-file/tutorial/config/config.xml
	<?xml version="1.0" encoding="UTF-8"?>
	<Installer>
		<Name>xinput</Name>
		<Version>1.0.0</Version>
		<Title>xinput Installer</Title>
		<Publisher>Gary.Lin</Publisher>
		<StartMenuDir>Xinput</StartMenuDir>
		<TargetDir>/usr/bin/Xinput</TargetDir>
	</Installer>

根据实际需求修改参数

创建桌面启动图标

	需要创建Xinput.desktop文件
	[Desktop Entry]
	Version=1.0.0
	# //版本,可选
	Name=xinput
	# //程序名,必须
	Name[zh_CN]=xinput
	# //中文程序名,可选
	Exec=/usr/bin/Xinput/xinput
	# //可执行程序路径,必须。路径必须是绝对路径
	Icon=/usr/bin/Xinput/Xinput.png
	# //程序图标,可选。路径必须是绝对路径,末尾不能有空格,否则将会导致无法加载图标
	Type=Application
	# //类型为应用程序,必选

修改installscripts.qs

在此脚本文件中添加相应的代码

function operationForLinux()
{
		//var params = "[Desktop Entry]" + "\n";
		var params = "Name=Xinput" + "\n";
		params += "Icon=@TargetDir@/Xinput.png" + "\n";
		params += "Version=@Version@" + "\n";
		params += "Exec=@TargetDir@/xinput" + "\n";
		params += "Terminal=false" + "\n";
		params += "Encoding=UTF-8" + "\n";
		params += "Type=Application" + "\n";
		params += "Categories=Network" + "\n";
		var desktop = "Xinput.desktop";
		component.addOperation("CreateDesktopEntry", desktop, params);

	var desktoppath = QDesktopServices.storageLocation(0);

	//installer.executeDetached("sh", installer.value("TargetDir") + "/getroot.sh", installer.value("TargetDir"));
	component.addElevatedOperation("Copy", "@TargetDir@/Xinput.desktop", "/usr/share/applications/Xinput.desktop");

	component.addElevatedOperation("Copy", "/usr/share/applications/Xinput.desktop", desktoppath + "/Xinput.desktop");


	component.addElevatedOperation("Execute","sudo","sh","@TargetDir@/changeuser.sh");
	//installer.executeDetached("sh", installer.value("TargetDir") + "/desktop.sh", installer.value("TargetDir"));
	//installer.executeDetached("sh", "@TargetDir@/changeuser.sh");


   // var XDG_DATA_HOME = installer.environmentVariable("XDG_DATA_HOME");
	//if(XDG_DATA_HOME.length > 0)
	//{
	 //   var XDG_DATA_HOME = installer.environmentVariable("XDG_DATA_HOME");
	 //   if(XDG_DATA_HOME.length > 0)
	  //  {
	  //      var XDG_DESKTOP_DIR = installer.environmentVariable("XDG_DESKTOP_DIR");
	  //      component.addOperation("Copy", XDG_DATA_HOME+"/applications/" + desktop, installerDir + XDG_DESKTOP_DIR);
	 //   }
	//}
 }

Component.prototype.createOperations = function()
{
	try {
		// call the base create operations function
		component.createOperations();
		operationForLinux();
	} catch (e) {
		console.log(e);
	}
}

修改生存桌面图标的用户所属组

创建changeuser.sh脚本文件

#!/bin/bash
wholestring=`who`
name=`echo $wholestring|awk '{print $1}'`
echo $name
. ~/.config/user-dirs.dirs
chown $name:$name $XDG_DESKTOP_DIR/Xinput.desktop
#sudo sed -i "/Same thing without a password/a\ $name ALL=(ALL) NOPASSWD: ALL" "/etc/sudoers" 

删除桌面文件的脚本

创建deleteDesktop.sh

read path < desktoppath.txt
if [["$path" != ""]];then
rm $path/Xinput.desktop
fi

执行打包命令

binarycreator -c config/config.xml -p packages Xinput
麒麟系统是基于Ubuntu的操作系统,打包Qt程序为应用程序可以通过以下步骤进行: 1. 安装必要的工具:在终端中执行以下命令来安装打包所需的工具: ``` sudo apt-get install build-essential qt5-default qtcreator ``` 2. 打开Qt Creator:打开Qt Creator应用程序,然后打开你的Qt项目。 3. 配置构建选项:在Qt Creator中的“构建”菜单下,选择“构建设置”,确保你选择了正确的构建套件。然后选择“构建”选项卡,确保选择了正确的构建目标和构建步骤。 4. 构建项目:点击Qt Creator窗口下方的构建按钮,开始构建你的项目。 5. 创建应用程序包:构建完成后,在Qt Creator中的“构建”菜单下,选择“部署到远程设备”,然后选择“创建应用程序包”。 6. 配置应用程序包:在创建应用程序包对话框中,选择输出目录和应用程序包的名称。你还可以选择是否包含Qt运行库和其他依赖项,以及是否自动生成启动脚本等。 7. 创建应用程序包:点击创建按钮,Qt Creator将使用Linux Deploy工具来创建应用程序包。这个过程可能需要一些时间,取决于你的项目的大小和复杂性。 8. 完成打包:当创建应用程序包完成后,你将在输出目录中找到一个文件夹,其中包含了你的应用程序的所有必要文件。你可以将整个文件夹复制到任何其他麒麟系统中运行你的应用程序。 以上就是使用麒麟系统打包Qt程序为应用程序的过程。请注意,这只是一个简单的概述,实际的操作可能会有所不同,具体步骤可能会因你的项目和系统环境而有所不同。建议参考相关的Qt文档和麒麟系统的指南来获得更详细和准确的信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值