gpt4 book ai didi

c++ - 如何构建通过 Azure DevOps 管道使用 vcpkg 依赖项的 MSVC++ 项目?

转载 作者:行者123 更新时间:2023-12-03 00:24:27 24 4
gpt4 key购买 nike

我有一个 C++ 项目,它的依赖项是 cpprestsdk 和 libpqxx,并且我使用 vcpkg 作为包管理器。

我创建了一个使用 CppBuildTask 的 Azure DevOps 管道从 vcpkg 克隆和构建依赖项的任务,这工作正常,并且所有依赖项都已成功提取并构建,但我不确定如何使用 *.vcxproj 文件实际构建项目。

我尝试使用 Visual Studio 构建任务,但构建失败,因为它找不到 CppBuildTask 刚刚下载的依赖项。

尝试在 Azure DevOps 上使用 vcpkg 构建 MSVC++ 项目时,正确的任务是什么?

编辑管道yaml文件:

pool:
name: Azure Pipelines
demands:
- msbuild
- visualstudio

steps:
- task: Cache@2
displayName: Cache
inputs:
key: '$(Build.SourcesDirectory)/response_file.txt | 5951e0b42569257f97a5d9ac2d8c5bd4942c417b | x64-windows'
path: '$(Build.SourcesDirectory)/vcpkg'

- task: lucappa.cmake-ninja-vcpkg-tasks.d855c326-b1c0-4d6f-b1c7-440ade6835fb.run-vcpkg@0
displayName: 'Run vcpkg'
inputs:
vcpkgDirectory: '$(Build.SourcesDirectory)/vcpkg'
vcpkgGitCommitId: 5951e0b42569257f97a5d9ac2d8c5bd4942c417b
vcpkgArguments: '@$(Build.SourcesDirectory)/response_file.txt'
cleanAfterBuild: false

- task: VSBuild@1
displayName: 'Build solution TileServer\TileServer.vcxproj'
inputs:
solution: '$(Parameters.solution)'
platform: '$(BuildPlatform)'
configuration: '$(BuildConfiguration)'
msbuildArchitecture: x64

- task: PublishSymbols@2
displayName: 'Publish symbols path'
inputs:
SearchPattern: '**\bin\**\*.pdb'
IndexSources: false
PublishSymbols: false
continueOnError: true

- task: CopyFiles@2
displayName: 'Copy Files to: $(build.artifactstagingdirectory)'
inputs:
Contents: |
**\bin\$(BuildConfiguration)\**
.\Renderer\Styles\Themes\DefaultTheme.json
.\TileServer\glew32.dll
.\TileServer\ReleaseSettings.json

TargetFolder: '$(build.artifactstagingdirectory)'
condition: succeededOrFailed()

- task: PublishBuildArtifacts@1
displayName: 'Publish Artifact'
inputs:
PathtoPublish: '$(build.artifactstagingdirectory)'
ArtifactName: TileServer
condition: succeededOrFailed()

最佳答案

通过在运行安装命令后显式集成 vcpkg,我能够使 vcpkg 正常工作。在 run-vcpkg 任务之后添加此内容,应该可以修复它:

- task: CmdLine@2
inputs:
script: '$(VCPKG_ROOT)\vcpkg.exe integrate install'

关于c++ - 如何构建通过 Azure DevOps 管道使用 vcpkg 依赖项的 MSVC++ 项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60901628/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com