问题标签 [vcpkg]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2638 浏览

c++ - 在 Windows 上设置 CMake 和 vcpkg 时出错`无法打开包含文件`

我一直在尝试遵循vcpkg 设置指南,但我无法解决我在最后一步遇到的构建错误:

我的 vcpkg 设置过程如下:

  • > git clone https://github.com/Microsoft/vcpkg.git
  • > cd vcpkg\
  • > .\bootstrap-vcpkg.bat
  • > vcpkg install sqlite3:x64-windows
  • > vcpkg integrate install

我确认 sqlite 安装:

我在测试存储库中创建以下文件:

CMakeLists.txt:

主.cpp:

开始构建:

然后我通过在构建文件夹中运行以下命令来生成构建文件,并注意它能够找到SQLite3

最后,我触发了构建,但失败了:

0 投票
1 回答
778 浏览

boost - VCPKG:如何在 ICU 支持下构建**所有的 Boost**

以下命令使用 VCPKG 构建 boost。

这个命令构建了所有的 Boost. 具体来说,它构建了以下包:boost-accumulators、boost-algorithm、boost-align、boost-any、boost-array、boost-asio、boost-assert、boost-assign、boost-atomic、boost-beast、boost-bimap , boost-bind, boost-callable-traits, boost-chrono, boost-circular-buffer, boost-compatibility, boost-compute, boost-concept-check, boost-config, boost-container, boost-container-hash, boost -context (!uwp), boost-contract (!arm), boost-conversion, boost-convert, boost-core, boost-coroutine (!uwp), boost-coroutine2, boost-crc, boost-date-time, boost -detail, boost-disjoint-sets, boost-dll, boost-dynamic-bitset, boost-endian, boost-exception, boost-fiber (windows), boost-filesystem (!uwp), boost-flyweight, boost-foreach,升压格式,升压功能,升压功能,升压功能类型,升压融合,升压几何,升压吉尔,升压图,

问题是这个命令没有在 ICU 支持下构建 Boost。

“vcpkg search”命令包含以下相关条目。

以下不起作用,因为它会产生错误。

以下构建具有 ICU 支持,但并未构建所有 Boost

构建 boost-locale 构建以下组件:boost-locale、boost-assert、boost-build、boost-config、boost-function、boost-integer、boost-iterator、boost-modular-build-helper、boost-smart-ptr 、boost-static-assert、boost-system、boost-thread、boost-type-traits、boost-unordered 和 boost-vcpkg-helpers。

构建 boost-regex 构建以下组件:boost-regex、boost-assert、boost-build、boost-compatibility、boost-concept-check、boost-config、boost-container-hash、boost-core、boost-detail、boost -integer、boost-iterator、boost-modular-build-helper、boost-mpl、boost-predef、boost-smart-ptr、boost-static-assert、boost-throw-exception、boost-type-traits、boost-utility和 boost-vcpkg-helpers。

boost-locale 和 boost-regex 都省略了诸如 boost-accumulators 之类的组件。

首先安装 boost 然后安装 boost-locale 和 boost-regex 会导致某种你想要重建的消息。

应该只有一个命令来构建具有 ICU 支持的所有 Boost,而无需重建废话。

0 投票
1 回答
66 浏览

c++ - vcpkg:指定结构成员对齐

我有一些旧代码是用 1 字节(参数/Zp1结构成员对齐打包编译的,我正在向它们添加带有 gTest 的单元测试。我vcpkg用来安装 gTest,但它是使用 8 字节打包的默认设置编译的。我在使用 VS2019 的 Windows 上。

是否可以指定使用哪个包装(参数/Zpvcpkg

0 投票
1 回答
3022 浏览

visual-studio - 如何在 Visual Studio 中静态链接 VCPKG 生成的 .lib 文件

例如,我使用 VCPKG 构建第三方库,例如 libcurl。我有动态和静态构建。显然,import .lib 和 object .lib 文件分别包含在两个不同的文件夹中,x64-windows 和 x64-windows-static。我想将对象 libcurl.lib 与我的程序静态链接,但无法弄清楚如何配置 Visual Studio 来做到这一点。它总是最终使用导入库,而不是对象库,因此我的程序最终在执行时需要 libcurl.dll。

我已将主项目配置为使用 /MT 运行时库。我尝试将链接器配置为使用指向静态库文件夹和其他依赖项的其他库文件夹。我什至尝试在链接器附加依赖项中使用对象 libcurl.lib 文件的完整路径。

当我使用 /MT 切换运行时库时,我可以使用 Dependency Walker 来判断所有常规库(如 vcruntime)都集成在可执行文件中,而不是作为 DLL 加载,但 libucurl.dll 仍然存在,动态加载。

似乎由于 VCPKG 自动包含路径集成,Visual Studio 总是首先找到并使用导入 libcurl.lib,即使我在链接器输入中指定了对象 libcurl.lib 的完整路径。

如何配置 Visual Studio 以静态链接正确的 .lib 文件?

0 投票
0 回答
339 浏览

c - 如何在 vscode 中正确包含带有 msvc 的头文件?

我做到了vcpkg install mman.h && vcpkg integrate install

现在 VSCode 中的默认 C\CPP Linter 会看到该头文件,但编译器不会。

我的 tasks.json 文件:

仍然给我错误#include <mman.h>

0 投票
0 回答
491 浏览

gtk - 构建包 glib:x64-osx 失败:BUILD_FAILED

我正在尝试在我的 Mac(运行 Catalina)上使用vcpkg.

我在运行时收到以下错误消息./vcpkg install gtk

我怎样才能解决这个问题?

错误:构建包 glib:x64-osx 失败:BUILD_FAILED

请确保您使用的是最新的端口文件,然后在https://github.com/Microsoft/vcpkg/issues.\vcpkg update提交问题,包括: 包:glib:x64-osx Vcpkg 版本:2019.09.12-unknownhash

此外,请附上上述日志文件中的任何相关部分。

编辑

--keep-going在运行 install 命令时使用,它安装了所有不需要glib构建的包。

我添加了日志文件输出:

config-x64-osx-dbg-out.log

config-x64-osx-dbg-err.log

CMakeOutput.log

0 投票
1 回答
366 浏览

point-cloud-library - 如何知道什么版本的 VisualStudio 与 vcpkg 集成

我需要将 PCL(点云库)与 PCAP 一起使用。听说用vcpkg安装PCL后不用修改配置就可以使用PCL了。

但是,在 VS2017 和 VS2019 的新项目中,IDE 找不到源。

我的环境和安装步骤很打击。

  • 视窗10

  • 安装了VS2017和VS2019

  • 我在三元组文件“x64-windows.cmake”集(VCPKG_PLATFORM_TOOLSET v141)中添加了以下代码

  • 我在 PowerShell 中按照以下步骤安装了软件包。

    1. .\vcpkg 安装 pcl[pcap]:x64-windows --featurepackages
    2. .\vcpkg 集成安装
  • VS2017 找不到 PCL 源,所以我检查了项目属性。没有关于 pcl 的任何目录值。而且,我输入了值。

    • “%VCPKG_ROOT%\installed\x64-windows\lib”和文件(*.lib)
    • "%VCPKG_ROOT%\installed\x64-windows\include"
    • "%VCPKG_ROOT%\installed\x64-windows\bin"

    但是,PCL 仍然无法正常工作

  • 我还检查了“%VCPKG_ROOT%\installed\x64-windows\lib”。

    “boost_atomic-vc140-mt.lib”在这个文件夹中。

    vc140 适用于 VS2015。不是吗?

如何为VS2017安装PCL,并与VS2017集成?

0 投票
1 回答
222 浏览

visual-studio - 使用 vcpkg portfile,如何插入常规 CMake 命令?

我正在尝试使用常规 CMake 命令自定义通过 vcpkg 安装的库。我唯一需要调整的是启用预处理器,例如BUILD_WITH_THIS_OPTIRAL_FEATURE。

使用 Visual Studio,这非常简单:只需将其添加到C/C++ > Preprocessor项目的属性中即可。但是对于 vcpkg,如何将其与自己的功能混合使用尚不清楚。

说如果我有一个端口文件准备好

我真的很想让它知道我想要

但是直接这样做portfile.cmake给了我

有谁知道怎么做?

0 投票
2 回答
1271 浏览

build - 如何启用 DRAFT API for zeromq/cppzmq 以使用 vcpkg 在 Windows 上构建?

使用 vcpkg,在我ZMQ_BUILD_DRAFT_API同时启用zeromqcppzmq. 构建失败并出现以下错误

这是我portfile.cmake的 zeromq

这是 cppzmq 的

导出符号的 DUMPBIN 输出显示缺少相关符号

如何使用 vcpkg 启用 DRAFT API?

0 投票
1 回答
2773 浏览

linux - 如何将 linux 中的 vcpkg 与交叉构建工具链以及 sysroot 集成?

我的问题是,如何将 linux 中的 vcpkg 与交叉构建工具链以及 sysroot 集成?例子:

  • 构建机器是fedora30
  • 交叉构建工具链是x86_64-centos7-gnu

来自https://github.com/microsoft/vcpkg quickstart 说:

在我的机器上,我安装了 gcc 9.1,它被vcpkgbootstrap.sh 检测到并且工作正常;

同时,我构建了一个用于交叉构建的工具链,它位于$HOME/cross/x64_86-centos7-linux-gnu/

如何设置另一个vcpkg使用该特定工具链的目录树?

通过“使用”,我的意思是 vcpkg 及其所有软件包都应该由该工具链编译,而我使用 vcpkg 工具链文件“$vcpkg_home/scripts/buildsystems/vcpkg.cmake”的项目都应该将该工具链作为 $CC 并构建工具集?