【问题标题】:How to build Qt applications using Team Foundation Server 2017如何使用 Team Foundation Server 2017 构建 Qt 应用程序
【发布时间】:2017-09-01 18:02:48
【问题描述】:

我目前正在将几个旧 Qt5 项目迁移到新的 Team Foundation Server。所有项目都是在 Visual Studio 中使用 Qt VS AddIn 为 Windows 开发的(因此不使用 .pro 文件)。我很想使用 TFS 构建代理在其他平台(主要是 linux)上构建这些。

我之前在其他项目上使用 Jenkins 和 qmake 完成了此操作,在 .pro 文件中具有与平台相关的设置。

是否存在通过其他平台上的 TFS 构建服务器使用 Qt5 构建 VS 项目的既定工作流程?

【问题讨论】:

    标签: c++ qt tfs


    【解决方案1】:

    我不使用 TFS,但由于 TFS Build 在 Visual Studio 解决方案上运行,应该可以使用 VS2017 的“使用 C++ 进行 Linux 开发”功能。只需在 VS 解决方案中设置一个 Linux 项目,它就应该像其他任何项目一样构建。

    【讨论】:

    • 问题是我需要某种 Qt 支持(moc 等)。VS Qt 插件通过将 qmake 项目转换为 VS 解决方案来做到这一点。此外,项目应在 Windows 和 Linux 中构建。
    • 对于跨平台构建,您将在同一个灵魂中镜像 Windows 和 Linux 项目,并与奇怪的 #ifdef 共享源代码。我想这取决于您运行 Qt 插件和生成 VS 解决方案的频率;如果是每次构建,那么它是非启动器,如果它是一次性设置,那么它是可行的。
    • 我从 qmake 生成 VS 解决方案时看到的问题是,类似于您描述的代码差异(使用预处理器),在预构建过程中可能也需要区分(不同链接库的位置,需要在编译前运行的不同工具)。当使用像 qmake 或 cmake 这样的构建系统时,所有这些都是微不足道的......但我担心这是否会转化为 VS 解决方案......
    • 我有针对 Win32 和 Linux 同时构建的 VS 灵魂,通过配对项目来定位每个平台。除图形之外的大多数常见代码。但这些都是手工制作的项目,我不知道 Qt 是否可以自动生成它们。尝试一下可能会很有趣。
    【解决方案2】:

    您似乎想使用 TFS vNext 构建系统在 Linux 中构建跨平台代码。要构建或部署,您至少需要一个代理。 cross platform build agent 支持 UbuntuRed HatCentOS

    详细步骤请参考本教程--Deploy an agent on Linux。然后简单地创建构建定义添加构建任务,选择Linux构建代理与在windows上构建相同。更详细的步骤和构建配置你可以看看这个视频教程--Building and Deploy Applications In Linux With TFS

    在您的情况下,您的 Linux 环境中没有对应的 VS/Qt VS AddIn。你需要设置好你的 Linux 构建代理本地环境才能成功构建你的 qt5 应用程序,那么通过 tfs 构建并不难。

    另一种方法是编写 Linux 构建过程脚本以通过 SSH 或其他远程协议运行,并从 Windows 构建代理驱动此过程。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-09-22
      • 2010-12-27
      • 2018-08-29
      • 2020-01-18
      • 2010-10-03
      • 2013-07-02
      • 1970-01-01
      • 2018-06-24
      相关资源
      最近更新 更多