我一直在试图弄清楚如何让Travis-CI构建一个仅限QT5的应用程序。
我必须是Qt5,并且包含QSerialPort模块,因此库存Ubuntu版本不可用(Missing QSerialPort)。我将Qt 5.x安装到12.04 Ubuntu VM上,将文件放入我放入另一个repo的内容中,但是当我下载并解压缩Qt5可执行文件(qmake + sources等)时,我无法运行它们,即使qmake位于$ PATH。
代码全部发布在https://github.com/npotts/QuteSerial。
.travis.yml
language: cpp
compiler:
- gcc
before_install:
- wget https://github.com/npotts/Qt5-Travis-CI/raw/master/Qt5.txz
- tar xfp Qt5.txz -C ${HOME}
install:
- sudo apt-get update -q
- sudo apt-get install build-essential
script:
- export PATH="${HOME}/Qt5.3.2/bin:${PATH}"
- which qmake
- uname -a
- qmake --version
- pwd
- ls *
- ls -alh ${HOME}/Qt5.3.2/*
- ../../Qt5.3.2/bin/qmake
- vendor/../../Qt5.3.2/bin/qmake
- make -j$(nproc)
构建错误: https://travis-ci.org/npotts/QuteSerial/builds/38996355
答案 0 :(得分:1)
它并不漂亮,但这个before_install
脚本是我用来从Ubuntu存储库在Travis CI上安装Qt5的。
apt-get
命令按原样使用非常重要;依赖项无法正确解析,因此我手动修复它们。
before_install:
- sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu trusty universe"
- sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu trusty main"
- sudo apt-get install debian-keyring debian-archive-keyring
- sudo apt-key update
- sudo apt-get update
- sudo apt-get install qt5-default qt5-qmake qtbase5-dev-tools qtchooser qttools5-dev qtbase5-dev libgles2-mesa-dev libqt5gui5 libqt5serialport5-dev libqt5printsupport5 libqt5widgets5 libgles2-mesa libgl1-mesa-dev libgl1-mesa-glx libglapi-mesa libegl1-mesa-dev libpango-1.0-0
- sudo apt-get install zlib1g-dev libudev-dev
答案 1 :(得分:0)
我检查了您正在下载的存档,似乎其中的二进制文件是针对32位架构进行编译的。 Travis CI环境是64位,您需要提供64位编译的二进制文件才能使它们正常工作。
您看到的错误有点令人困惑,但是当二进制文件的编译目标与其运行的架构不匹配时,这是一个常见的错误。