1.以vcu-qt程序为为例
2.修改源码
$cd project-spec/meta-user/recipes-apps/vcu-qt/files
$mkdir develop
$cp vcu_qt.zip develop
$cd develop
$unzip vcu_qt.zip
$vi src/main.cpp #在main()中增加一行qDebug("vcu-qt starting\n"); 保存退出
$rm vcu_qt.zip && zip -r vcu_qt.zip * #重新打包
$cp vcu_qt.zip ../
$petalinux-build -c vcu-qt #回工程主目录进行编译
3.获取应用程序,由于中间生成的可执行文件已经被删除,所以只能从rmp中获取,解包后的程序可以通过scp拷贝到开发板上进行运行。
$cp build/tmp/deploy/rpm/aarch64/vcu-qt-1.0-r0.aarch64.rpm /tmp/ #拷贝到临时目录
$unpack.sh /tmp/vcu-qt-1.0-r0.aarch64.rpm #解rpm包
$cat unpack.sh
#!/bin/bash
# unrpm.sh :解包一个rpm归档文件
# Usage: `basename $0` target-file
TEMPFILE=$$.cpio ##TEMPFILE必须是一个唯一的名字,$$是这个脚本的进程ID
file=$1
E_NOFILE=71
E_NORPM=72
if [ ! -f "$file" ]; then
echo "Should use a existing file"
exit $E_NOFILE
fi
res=`file "$file" | grep -o "rpm"`
if [ -z "$res" ]; then
echo "Should use a rpm file"
exit $E_NORPM
fi
rpm2cpio < $file > $TEMPFILE
cpio --make-directories -F $TEMPFILE -i
rm -f $TEMPFILE
exit 0