收集网址:

https://blog.csdn.net/u012020854/article/details/107104441/
https://blog.csdn.net/weixin_39864453/article/details/112702456
参考二
https://www.bilibili.com/read/cv12524130/

下面是qt编译的时候配置参数:

./configure -prefix /home/kylin/crystalmedia/server/media/depends-source-bak/qt-everywhere-src-5.12.3-release/qt_gcc_64 \-release -opensource -confirm-license -no-openssl -no-opengl  -skip qtquickcontrols -skip qtquickcontrols2 -skip qtsensors -skip qtdoc -no-compile-examples -skip qtlocation

其中要安装一些xcb的库,具体遇到自己百度一下。

使用qmake的时候遇到的一些问题:
Qmake error: Unknown module(s) in QT: network widgets gui core
在qmake 文件夹下,也就是bin目录下新建一个文件qt.conf
添加安装路径:
[Paths]
Prefix=/home/kylin/qt-gcc_64

下面是一个通过qmake编译qt项目的脚本:

# Build Qt project.####################################################
### step 1: collect shell arguments
PROMPT=${PROMPT:-"[CI] "}function usage () {echo ${PROMPT}-----------------echo ${PROMPT}"Usage:"echo $PROMPT{PROMPT}"./$(basename $0) \\"echo ${PROMPT}"    --qt        <abs-dir of Qt executables>"echo ${PROMPT}"    --source    <abs-dir of source codes>"echo ${PROMPT}"    --build     <abs-dir for building process>"echo ${PROMPT}"    --install   <abs-dir for intalling targets>"echo ${PROMPT}"    --depends   <abs-dir of dependencies>"echo ${PROMPT}"    [--rebuild"]echo ${PROMPT}""echo ${PROMPT}"Example:"echo ${PROMPT}"./$(basename $0) \\"echo ${PROMPT}"    --qt        \"/home/builder01/Workplace/depends/libqt\" \\"echo ${PROMPT}"    --source    \"/home/builder01/Workplace/libdarknet\" \\"echo ${PROMPT}"    --build     \"/home/builder01/Workplace/libdarknet-build\" \\"echo ${PROMPT}"    --install   \"/home/builder01/Workplace/depends/libdarknet\" \\"echo ${PROMPT}"    --depends   \"/home/builder01/Workplace/depends\""echo ${PROMPT}"    --rebuild"
}if [ "$1" == "" ]; thenusageexit 1;
fi
INPUT="$0 $@"
PROCESS_ARGS=$(getopt -o q:s:b:i:d:v:r --long qt:,source:,build:,install:,depends:,version:,rebuild -- "$@")
eval set -- "$PROCESS_ARGS"while true; do
case "$1" in-q|--qt)      DIR_LIBQT=$2 ;      shift 2 ;;-s|--source)  DIR_SOURCE=$2 ;     shift 2 ;;-b|--build)   DIR_BUILD=$2 ;      shift 2 ;;-i|--install) DIR_INSTALL=$2 ;    shift 2 ;;-d|--depends) DIR_DEPENDS=$2 ;    shift 2 ;;-v|--version) VERSION=$2 ;        shift 2 ;;-r|--rebuild) REBUILD=YES ;        shift  ;;--)        shift ; break ;;*)echo "Internal error!" ; exit 1 ;;
esac
done### change to use qt in flow-depends,songky,2020-05-12
#DIR_LIBQT="${DIR_DEPENDS}/qt-gcc_64"[ -z "$DIR_LIBQT" ]   && PAR_ERROR=YES
[ -z "$DIR_SOURCE" ]  && PAR_ERROR=YES
[ -z "$DIR_INSTALL" ] && PAR_ERROR=YES
[ -z "$DIR_DEPENDS" ] && PAR_ERROR=YES
# version choice is disabled.  You can enable it uncomment the lines below
#[ -z "$VERSION" ]     && PAR_ERROR=YES#VERSION="debug release"  ### defined in job stageif [ "#$PAR_ERROR" = "#YES" ]; thenecho ${PROMPT}Parameter error!.  You input is interieted as:echo ${PROMPT}--------------------------echo ${PROMPT}$INPUTecho ${PROMPT}--------------------------echo ${PROMPT}  Type \"./$(basename $0)\" for help.exit 1
fi#if test $REBUILD
#then
#  REBUILD=YES
#else
#  REBUILD=NO
#fi#trans git-lab viriables to project viriables
SMB_DIR=${sambaServer_flow:=---Empty---}
SMB_SERVER=${sambaServer_IP:=---Empty---}
SMB_USER=${sambaServer_user:=---Empty---}#build different versions in individual folder
cd ..
rm -r ./${CI_PROJECT_NAME}_${VERSION}
cp -a ${CI_PROJECT_NAME} ./${CI_PROJECT_NAME}_${VERSION}
cd ${CI_PROJECT_NAME}_${VERSION}
#DIR_SOURCE=${PWD}### print some debug info
if [[ ! "${flie_to_cat}" == "-" && -f "${flie_to_cat}" ]]; thenecho ""echo "contents of ${flie_to_cat}"cat ${flie_to_cat}
fiif [[ ! "${floder_to_ls}" == "-" && -d "${floder_to_ls}" ]]; thenecho ""echo "contents of ${floder_to_ls}"ls -l ${floder_to_ls}
fi
####################################################
### step 2: check settingsecho ${PROMPT}QtLib=$DIR_LIBQT
echo ${PROMPT}Source=$DIR_SOURCE
echo ${PROMPT}Build=$DIR_BUILD
echo ${PROMPT}Install=$DIR_INSTALL
echo ${PROMPT}Depends=$DIR_DEPENDS
echo ${PROMPT}Version=$VERSION
echo ${PROMPT}Rebuild=$REBUILD[ ! -d ${DIR_LIBQT} ] && echo "${DIR_LIBQT} not exists!" && exit 1
[ ! -d ${DIR_SOURCE} ] && echo "${DIR_SOURCE} not exists!" && exit 1
[ ! -d ${DIR_DEPENDS} ] && echo "${DIR_DEPENDS} not exists!" && exit 1#rm -fr ${DIR_INSTALL}/*
#mkdir -p ${DIR_BUILD}/debug
#mkdir -p ${DIR_BUILD}/release
#mkdir -p ${DIR_INSTALL}/debug
#mkdir -p ${DIR_INSTALL}/release
rm -fr ${DIR_INSTALL}/${VERSION}
mkdir -p ${DIR_BUILD}/${VERSION}
mkdir -p ${DIR_INSTALL}/${VERSION}# the .pro files in flow need environment variable 'DEPENDS_ROOT' to tell
# the path to the dependencies
export DEPENDS_ROOT=${DIR_DEPENDS}# Qt screen output settings
export QT_QPA_PLATFORM_PLUGIN_PATH=${DIR_DEPENDS}/qt-gcc_64/plugins
export QT_QPA_PLATFORM=offscreen
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${DIR_DEPENDS}/qt-gcc_64/plugins/platforms
echo "QT_QPA_PLATFORM_PLUGIN_PATH="${QT_QPA_PLATFORM_PLUGIN_PATH}
echo "QT_QPA_PLATFORM="${QT_QPA_PLATFORM}
echo "LD_LIBRARY_PATH="${LD_LIBRARY_PATH}####################################################
### step 3: make and run shell command lines
CPPCHECK_PASS=YESfor build_version in $VERSION ; doif [ "#${build_version}" = "#debug" ] || [ "#${build_version}" = "#DEBUG" ] || [ "#${build_version}" = "#Debug" ] ; thenVER_STR=debugelseVER_STR=releasefiif [ $REBUILD = "YES" ] ; thencmd_clear_build="rm -fr /${DIR_BUILD}/${VER_STR}/*"elsecmd_clear_build="echo Incremental build."fiexport BUILD_PATH=${DIR_BUILD}/${VER_STR}export INSTALL_PATH=${DIR_INSTALL}/${VER_STR}first_pass=YESecho ${PROMPT} Run QMake and make...echo Dir of Source:${DIR_SOURCE}for pro_file in $(ls ${DIR_SOURCE}/*.pro); doif [ $first_pass = "YES" ] ; then#clear install directorycmd_clear="rm -fr ${DIR_INSTALL}/${VER_STR}/* && ${cmd_clear_build}"first_pass=NOelsecmd_clear="echo 2nd pass..."ficmd_db="compiledb -n make"if [ $VER_STR = "debug" ] ; thencmd_qmake="${DIR_LIBQT}/bin/qmake ${DIR_SOURCE}/$(basename ${pro_file}) -spec ${DIR_LIBQT}/mkspecs/linux-g++ CONFIG+=debug CONFIG+=qml_debug"elsecmd_qmake="${DIR_LIBQT}/bin/qmake ${DIR_SOURCE}/$(basename ${pro_file}) -spec ${DIR_LIBQT}/mkspecs/linux-g++ CONFIG+=qtquickcompiler"fi# ${qmake_xxxxxx} is run twice to include the built targets for installation.build_cmd="${cmd_qmake} && make -j 8 && cd ${DIR_BUILD}/${VER_STR} && rm -fr \`find -name Makefile\` && ${cmd_qmake} && make install"# generate log filecmd_log="echo Built at $(date +%y%m%d_%H%M%S) >> ${DIR_INSTALL}/${VER_STR}/build-log-$(date +%y%m%d_%H%M%S).txt"cmdline="${cmd_clear} && cd ${DIR_BUILD}/${VER_STR} && ${build_cmd} && ${cmd_log}"eval ${cmdline}if [ $? -eq 0 ]; thenecho ${PROMPT}"${pro_file}-${VER_STR} has been successfully built."cp ${DIR_SOURCE}/scripts/startEngine.sh ${DIR_INSTALL}/${VER_STR}/elseecho ${PROMPT}" Build failed."exit 1fidone##### write version info into filereleaseNotes_filename="ReleaseNotes-$(date +%y%m%d_%H%M).txt"cmd_last_half=">> ${DIR_INSTALL}/${VER_STR}/${releaseNotes_filename}"### add components updated infoversion_cmd="echo build flow $(date +%y%m%d_%H%M%S) ${cmd_last_half}"### add code infoversion_cmd="${version_cmd} && echo ' ' ${cmd_last_half}"version_cmd="${version_cmd} && echo Code info:---------- ${cmd_last_half}"version_cmd="${version_cmd} && echo CI_COMMIT_SHA=${CI_COMMIT_SHA} ${cmd_last_half}"version_cmd="${version_cmd} && echo CI_COMMIT_SHORT_SHA=${CI_COMMIT_SHORT_SHA} ${cmd_last_half}"version_cmd="${version_cmd} && echo CI_COMMIT_REF_NAME=${CI_COMMIT_REF_NAME} ${cmd_last_half}"version_cmd="${version_cmd} && echo CI_COMMIT_BRANCH=${CI_COMMIT_BRANCH} ${cmd_last_half}"version_cmd="${version_cmd} && echo CI_COMMIT_TAG=${CI_COMMIT_TAG} ${cmd_last_half}"### add building env.version_cmd="${version_cmd} && echo ' ' ${cmd_last_half}"version_cmd="${version_cmd} && echo Building Env.: ---------- ${cmd_last_half}"version_cmd="${version_cmd} && echo depends_dir=${DIR_DEPENDS} ${cmd_last_half}"version_cmd="${version_cmd} && echo docker_image=${docker_image} ${cmd_last_half}"echo ${PROMPT} "write version info command:"echo ${PROMPT} "${version_cmd}"echo " "eval "${version_cmd}"if [ $? -eq 0 ]; thenecho ${PROMPT}"Write version info to file into finished."elseecho ${PROMPT}"Write version info to file into failed."exit 1fi
done####################################################
### step 4: zip release vesion files of branch master or branch customized-FlowDesk-by-Zhongshan-University, then copy to samba SMB_SERVER
# check if need to zip and scp new files to samba server and gitlab runners
if [[ ${zip_scp} == "yes" ]] && [[ ${VERSION} == "release" ]] ; thenecho ${PROMPT} "-----Continue to zip and scp release version to samba server-----"
elseexit 0
fiif [[ ${CI_COMMIT_REF_NAME} = *Zhongshan* ]] || [[ ${CI_COMMIT_REF_NAME} = "master" ]] ; then# auto add remote runners authenticity keysed -i "/StrictHostKeyChecking/c StrictHostKeyChecking no" /etc/ssh/ssh_config# zip packagefilename_suffix="$(date +%y%m%d_%H%M)_${CI_COMMIT_SHORT_SHA}.zip"if [[ ${CI_COMMIT_REF_NAME} = master ]];thenzip_filename="flow-master_"${filename_suffix}elif [[ ${CI_COMMIT_REF_NAME} = *Zhongshan* ]];thenzip_filename="flow-SYSU_"${filename_suffix}fizip_cmd="echo =====zip job begin====="zip_cmd="${zip_cmd} && cd ${DIR_INSTALL}"zip_cmd="${zip_cmd} && zip -ry ${zip_filename} ./release/*"# copy zip files to sambaServercp_zipfiles="echo ----- copy files to samba server -----"cp_zipfiles="${cp_zipfiles} && sshpass -p ${sambaServer_pwd} scp ${zip_filename} ${SMB_USER}@${SMB_SERVER}:${SMB_DIR}"zip_cmdline="${zip_cmd} && ${cp_zipfiles} && rm ${zip_filename}"echo ${PROMPT}"zip_cmdline:----------"echo ${zip_cmdline}echo ----------eval "${zip_cmdline}"if [ $? -eq 0 ]; thenecho ${PROMPT}"zip and copy ${zip_filename} to ${SMB_SERVER}/${SMB_DIR} finished."elseecho ${PROMPT}" zip and copy files failed."exit 0fi
fi

使用:

#!/bin/bashVERSION="release"
REBUILD="YES"if [ -n "$1" ];thenVERSION=$1
fiif [ -n "$2" ];thenREBUILD=$2
fi
MYQTPATH=/home/kylin/crystalmedia/server/media/media-depends/qt-gcc_64
export QMAKESPEC=$MYQTPATH/mkspecs/linux-g++./build-tg.sh \
-q ${MYQTPATH} \-s ${PWD}/crystal-media  \
-b ${PWD}/build \
-i  ${PWD}/install \
-d ${PWD}/media-depends \
-v ${VERSION} \-r ${REBUILD} \cp ../build/${VERSION}/engine/lib*  ../install/
cp ../build/${VERSION}/server/Flow*  ../install/echo `date`
echo ${VERSION} "rebuild":${REBUILD}

麒麟操作系统+龙心 编译qt-arm相关推荐

  1. 关于 国产麒麟系统编译Qt项目是报错:error: cannot find -lGL 的解决方法

    若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/123784051 红胖子(红模仿)的博文大全:开发技术集 ...

  2. linux飞腾cpu,基于飞腾CPU+银河麒麟操作系统编译安装tensorflow

    由于飞腾CPU是aarch64指令集,当前并不存在可以通过pip直接安装的tensorflow包.因此我们只能通过编译安装.但是,要编译安装Tensorflow,必须要首先安装Bazel,而要安装Ba ...

  3. 基于飞腾CPU+银河麒麟操作系统编译安装tensorflow

    为什么80%的码农都做不了架构师?>>>    由于飞腾CPU是aarch64指令集,当前并不存在可以通过pip直接安装的tensorflow包.因此我们只能通过编译安装.但是,要编 ...

  4. 银河麒麟操作系统常见运维问题

    目录 银河麒麟  常见运维问题 1 安装问题 1) 高级安装ARM版本系统,新建分区sda1必须是/boot分区,sda2是根分区? 2) 用光盘安装或者U盘安装时,无法进入安装界面问题 3) 麒麟系 ...

  5. qt5.15.2在银河麒麟v10sp1上编译源码后安装运行

    转载备份,原文章:银河麒麟V10系统+飞腾CPU交叉编译安装Qt-5.15.2_银河麒麟交叉编译_savagelin的博客-CSDN博客 操作系统版本名称:银河麒麟V10(SP1) 版本号:2203 ...

  6. 银河麒麟操作系统开发_银河初级开发者指南

    银河麒麟操作系统开发 对于许多人来说,开始软件开发似乎太困难且繁琐的任务. 实际上,您只需要一台计算机并且对软件开发非常感兴趣即可上手. 在这个故事中,我将介绍软件开发的所有基本知识,并介绍一些您以前 ...

  7. linux环境下编译Qt源码

    环境配置:Ubuntu-16.04 1) 下载源码 在官方网站:http://download.qt.io/archive/qt/5.12/5.12.5/single/上下载qt-everywhere ...

  8. 微信iOS版朋友圈可删除评论;周鸿祎:有的软件会偷拍偷录;银河麒麟操作系统V10发布| 极客头条

    整理 | 屠敏 头图 | CSDN 下载自东方 IC 「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧. 国内要 ...

  9. 2020-09-14 编译Qt的MySQL 5.7插件: qsqlmysql.dll

    文章更新于2020-09.14 (编译Qt的MySQL插件) 需要准备的工具包括 微软VS2019全套C++开发工具 MySQL 5.7社区版安装包https://downloads.mysql.co ...

最新文章

  1. 美图秀秀web开发文档
  2. 用OpenGL进行曲线、曲面的绘制
  3. Centos7安装防火墙firewall
  4. 计算机一级access考试题库,‎App Store 上的“计算机二级access-全国计算机等级考试题库”...
  5. OpenCV人脸检测与人脸识别
  6. 密位测距离口诀_电气故障怎么查?最新最全的79条电气故障诊断口诀
  7. 抖音最强python_装逼篇 | 抖音超火的九宫格视频是如何生成的,Python 告诉你答案...
  8. CS224n笔记3 高级词向量表示
  9. 计算机与打印机整体方案,打印机的一些使用方案
  10. memset()详解
  11. UML-----实现图(构件图、部署图)
  12. smartpdf双击无法返回latex如何解决
  13. 太实用了!这几个Python数据可视化案例!
  14. 图中PNP型三极管发射极和基极为什么要加个100K(R21)的电阻?
  15. 山东大学计算机网络答案,《计算机网络基础》山东大学20春( B 卷)
  16. 一个微信小程序开发示例
  17. CAS 单点登录使用详解
  18. GitChat在做什么
  19. 常用电源管理稳压IC
  20. 国外lead教程---EMU之SSN用不用

热门文章

  1. (实验55)单片机,STM32F4学习笔记,代码讲解【网络通信实验】【正点原子】【原创】
  2. 如何让你的旧电脑跑起来与新电脑一样快?老程序员传授秘诀!
  3. centos 网卡设置
  4. 华硕(ASUS)枪神系列出厂系统win10/11原厂OEM系统
  5. STM32点亮第一盏灯
  6. SQL INSERT 语句
  7. el-tree树形结构动态更新数据
  8. Flask开发微电影网站(三)
  9. Python 函数的4种参数
  10. 基于分时电价策略的家庭能量系统优化(Matlab代码实现)