qt - Appveyor - 编译静态 qt5.10 应用程序(带有 openssl 和 qml webview)
问题描述
我正在尝试在我的 Qt 项目上设置 autobuild appveyor。我的应用程序使用 qt5.10.1,具有 qml 和 openSSL 功能。
我迷路了......我不知道从哪里开始:/
# 1: 我找到了一些 .apveyor.yml 配置文件的例子,但是它们都使用了 mingw32 编译器,它不允许我使用 qml webview 模块(为什么)......我没有找到我必须在我的使用 msv2017 编译我的应用程序的 appveyor 配置文件编译器在哪里?
实际上,我的 appveyor.yml 看起来像那样(我尝试像 QtCreator 在我的本地计算机上所做的那样,但它不起作用)
image: Visual Studio 2017
branches:
only:
- master
install:
- set QTDIR=C:\Qt\5.10.1\msvc2017_64
- set PATH=%QTDIR%\bin;C:\Qt\Tools\mingw530_32\bin;%PATH%;
build_script:
- qmake app/QRegovar.pro -spec win32-msvc
- qmake_all
- C:\Qt\Tools\QtCreator\bin\jom.exe -f Makefile.Release
deploy:
- provider: GitHub
artifact: C:/projects/qregovar
draft: true
prerelease: false
on:
branch: master
appveyor_repo_tag: true
它失败并出现以下错误:
Build started
git clone -q --branch=master https://github.com/REGOVAR/QRegovar.git C:\projects\qregovar
git checkout -qf 7357eb2adab349c4de9e0b346dc99027964ea5a5
Running Install scripts
set QTDIR=C:\Qt\5.10.1\msvc2017_64
set PATH=%QTDIR%\bin;C:\Qt\Tools\mingw530_32\bin;%PATH%;
qmake app/QRegovar.pro -spec win32-msvc
Project ERROR: Cannot run compiler 'cl'. Output:
===================
===================
Maybe you forgot to setup the environment?
Command exited with code 3
# 2: 我也想知道 appveyor 是否使用 qt static build ?因为我想为用户创建“准备使用”包?
解决方案
我正在使用 CMake,但我想诀窍是将 'cl' 编译器设置到 PATH 中,以便 qmake 能够找到它。
在示例 appveyor 脚本中,主要的构建脚本是 '.\qtmodules-travis\ci\win\build.bat'。此脚本将检查/使用 AppVeyor 矩阵定义的平台变量(第 7 行以上),然后脚本定义 VC_DIR 等。
最后是调用你'build-msvc.bat'引用的脚本,其中被调用:
call %VC_DIR% %VC_VARSALL% || exit /B 1
QtCreator 将为您进行设置(您正在使用工具包...)
当您在干净的命令行中构建时,您应该在调用 'qmake' 之前调用自己的 'vcvarsXXX.bat。
在我看来,AppVeyor 不会为您触发此调用,因为开发人员可能希望使用不同的构建环境。设置(例如 x86、x64、arm 等)。这是你的选择。实际上,当您从开始菜单在 PC 上启动“Qt 命令行”时,这也是提示(它调用“C:\Qt\5.11.0\msvc2017_64\bit\qtenv2.bat”shell 设置脚本)
推荐阅读
- java - 无法播放此视频。MediaPlayer:无法打开 /storage/emulated/0/...mp4
- python-3.x - 调用 pipenv shell 时出错
- java - 如何使用 Stream#reduce 提高字符串处理的性能?
- reactjs - 将普通变量转换为状态变量,同时处理异步问题
- flutter - 使用类型转换方法 (.toObjectBox) 在 ObjectBox 中存储嵌套数据结构
- c# - WPF Datagrid Binding:访问视图模型中绑定集合的当前评估项
- r - 在 r 中的一组中分配小于 5 的数据
- css - 在角度中使用带有线性渐变 CSS 的自定义材质主题
- json - 如何显示数组列表格式的 JSON 数据
- laravel - 为什么它在 Laravel 中返回一个空白页面?