问题标签 [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 投票
2 回答
4652 浏览

c++ - vcpkg 不适用于谷歌测试

我安装并集成了最新版本的 vcpkg:

我安装了谷歌测试:

gtest.h在 Visual Studio 2015 Update 3 的项目中包含:

它编译得很好,但我有链接器错误:

显然,Visual Studio 不知道它应该与gtest.lib. 我不明白为什么。Vcpkg 只说“链接将被自动处理”。不知道它将如何做到这一点。

在我的项目的“附加库依赖项”中,我可以看到这些继承的值:

$(VcpkgRoot)决心e:\work\vcpkg\installed\x64-windows\。所以看起来整合是成功的。但是 Visual Studio 如何知道它应该与gtest.lib?

请注意,如果我gtest.lib手动添加到“附加依赖项”,一切正常,并gtest.dll自动复制到输出目录。

0 投票
1 回答
1497 浏览

c++ - 命令行上的 vcpkg 设置错误

我正在尝试使用vcpkg 工具编译 dlib 19.4

因为我在编译 CMAKE 和使用 Boost.Python 时遇到问题

修复 dlib 的编译器问题。

尽管我什至在运行基本步骤时都遇到了问题

让 vcpkg 包工作:

(我还为此工具下载了 Visual Studio 2017)

cmd输出第1部分 cmd 输出第 2 部分 cmd 输出第 3 部分

0 投票
1 回答
4568 浏览

c++ - 使用 CMake 和 vcpkg 找不到 GLFW 目录

在 VS2017 中使用 CMake 时,我一直无法弄清楚如何让 CMake 找到并设置正确的 GLFW CMake 常量。任何帮助将不胜感激 :)。

glfw3是通过微软的vcpkg工具下载的。我已检查文件确实存在于vcpkg将它们放入 ( ~\vcpkg\installed\x86-windows\include) 的目录中。我在这里CMakeSettings.json按照他们的文档设置了我的。我使用该教程作为正确设置 GLFW 的基础。

然后我用它find_package(glfw3 REQUIRED)来查找glfw3库。这不会吐出任何错误。其实CMakeLists.txt根本不抱怨。它处于抱怨的编译阶段。

之后,我将glfw3with添加target_link_libraries(exe ${GLFW3_LIBRARIES})到可执行文件中。

然后当我尝试构建一个简单的示例(包括头文件)时,编译失败,因为它找不到GLFW/glfw3.h.

来自 MSVC 的错误:

这是我CMakeLists.txt的补充参考:

GLFW3_LIBRARIESglfw3Config.cmake通过窥探vcpkg安装目录中的内容(~\vcpkg\installed\x86-windows\share\glfw3

以防万一,main.cpp

我也尝试过cmake从命令行调用,但也无济于事。

我错过了什么吗?我可能误解了vcpkg文档中的某些内容吗?我真的不知道我错过了什么......:/此外,我应该说,我对 CMake 也很陌生。

0 投票
1 回答
1728 浏览

visual-studio - 使用 Visual Studio 和 vcpkg 在 SFML 上出现 CMake find_package 错误

根据标题,CMake无法通过s宏找到SFML我使用 Microsoft 的vcpkg工具安装的。CMakefind_package()

我已验证SFML已安装在已vcpkg安装目录 ( ~\vcpkg\installed\x86-windows) 中。

此外,我还在文件vcpkg中包含了工具链CMakeSettings.json文件。

具体错误是:

CMakeSettings.json(简化 - 仅调试配置):

CMakeLists.txt(也简化):

我不认为我错过了什么。SFML提供了一个findSFML.cmake应该vcpkg通过工具链文件自行处理的内容(假设我已经正确理解了他们的文档)。我肯定错过了什么?

0 投票
1 回答
3963 浏览

c++ - Google Mock 和 Vcpkg 未解决的外部符号错误

我用一个模拟类创建了一个简单的 C++ 测试项目:

我使用 Visual Studio 2017 (15.3.3)。这是一个具有所有默认设置的 x86 调试项目。

我已将 gtest.lib 和 gmock.lib 添加到链接器。当我编译和链接时,我得到这个错误:

我已经用 Vcpkg 下载了 gtest 包。它被编译为 32 位 DLL。Gtest 工作正常,但是当我实例化模拟类时,我得到了链接错误。我还用 CMake 项目进行了测试,我得到了同样的错误。

0 投票
1 回答
1198 浏览

c++ - vcpkg 安装失败并出现“SSL 连接错误”

当我尝试使用 vcpkg 安装 libxml2 软件包时,它给了我以下错误。

如何克服这个问题?有没有办法在 vcpkg 中使用 http 而不是 https?或者我可以跳过 sll 检查吗?

.\vcpkg 安装 libxml2

将构建和安装以下软件包:

  • libiconv:x86-windows
  • liblzma:x86-windows
  • libxml2:x86-windows
  • zlib:x86-windows

将安装其他软件包 (*) 以完成此操作。

启动包 1/4:zlib:x86-windows

构建包 zlib:x86-windows...

-- CURRENT_INSTALLED_DIR=...

-- 正在下载http://www.zlib.net/zlib-1.2.11.tar.gz ...

-- 下载http://www.zlib.net/zlib-1.2.11.tar.gz ... 失败。Status: 56;"从对端接收数据失败"

-- 正在下载https://downloads.sourceforge.net/project/libpng/zlib/1.2.11/zlib-1.2.11.tar.gz ...

-- 下载https://downloads.sourceforge.net/project/libpng/zlib/1.2.11/zlib-1.2.11.tar.gz ...失败。状态:35;“SSL 连接错误”

scripts/cmake/vcpkg_download_distfile.cmake:82 处的 CMake 错误(消息):无法下载文件。在https://github.com/Microsoft/vcpkg/issues添加镜像或提交问题

调用堆栈(最近的调用优先):ports/zlib/portfile.cmake:3 (vcpkg_download_distfile) scripts/ports.cmake:72 (include)

错误:构建包 zlib:x86-windows 失败:BUILD_FAILED 请确保您使用的是最新的端口文件,然后在https://github.com/Microsoft/vcpkg/issues.\vcpkg update提交问题,包括:

0 投票
1 回答
2300 浏览

c++ - 使用 Cmake-gui 和 vcpkg

我正在为我的项目测试 vcpkg,但遇到了 cmake-gui 的问题

我已经安装了 vcpkg,在 vcpkg 的帮助下安装了 Boost 库。当我通过命令行编译时,一切正常。我使用命令

但问题是当我想使用 cmake-gui 生成构建文件时。它报告未找到 Boost。

我试图添加

到我的 Makefile 的顶部,但它没有帮助。我也尝试使用 add_definitions 和 add_compile_options,但没有成功。

那么我应该在我的 cmake 文件中添加什么才能将 cmake-gui 与 vcpkg 一起使用?

0 投票
2 回答
810 浏览

c++ - 使用 vcpkg 与朋友分享项目的最佳方式是什么

我有一个项目,它依赖于cpprestsdk, tinyxml2。我在另一台没有互联网连接的计算机上运行这个项目,我用 vcpkg 安装了这些库,我想知道我应该将这些库静态链接到我的解决方案还是使用新的导出命令并创建一个 nuget 包并将其安装在我朋友的计算机上.

编辑:我想说我不需要运行生成的 .exe 文件,我想采用整个 Visual Studio 解决方案。

0 投票
0 回答
276 浏览

c++ - build with gtest failed

OS:x64 win7 sp1 with vs2017

I use vcpkg to install gtest, and then try to test it.

I create a dir and it has two files:

Then I use cmake .. "-DCMAKE_TOOLCHAIN_FILE=C:/src/vcpkg/scripts/buildsystems/vcpkg.cmake" and cmake --build ., and here is the log:

It seems that "RUN_ALL_TEST" is not be defined.

So how to solve the problem?

0 投票
2 回答
14162 浏览

c++ - 让 cURL 与 Visual Studios 2017 一起工作

*编辑:我按照以下步骤在 64 位机器上的 VS 2017 中使用 CURL(原始问题见下文):

首先安装 vcpkg:

  1. 使用 gitbash克隆vcpkgC:\Program Files
  2. 在命令提示符下导航到C:\Program Files\vcpkg
  3. 在命令提示符下运行:.\bootstrap-vcpkg.bat
  4. 在命令提示符下运行:vcpkg integrate install

然后使用 vcpkg 和 Visual Studios 2017 命令提示符安装 cURL:

  1. 打开 aVS 2017 Command prompt并导航到 vcpkg 文件夹(在哪里vcpkg.exe
  2. 运行:(vcpkg install curl[*]:x64-windows请注意,下载和运行可能需要大约半小时,如果它看起来像是“卡在”部分,请不要担心)。

    *编辑:以前我的指令说要运行vcpkg install curl:x64-windows,但我在[*]@i7clock 的要求下添加了启用 sftp 和 scp 协议。

  3. 在这一步之后,您应该检查以确保 curl 安装正确。为此,您应该在 VS 2017 中创建一个新项目并尝试包含#include curl/curl.h而不添加任何其他包含目录。如果你不能这样做,那么你的 curl 安装出了点问题。您应该删除 curl(甚至可能是 vcpkg 文件夹并进行全新安装),直到您可以包含curl/curl.h.

    *重要提示:仅当您在 x64 中使用 x64 调试器/编译时,这才有效!如果您不能包含 curl 目录,请检查以确保您的调试设置为正确的 Windows 版本。

您可能还需要禁用 SSL 对等验证:

  1. 将代码curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, FALSE);放在请求之前(见下文)。请注意,这只是必要的,因为我不知道如何获取证书以使用 curl。我在这里有一个关于这个问题的尚未回答的 stackoverflow 帖子。

以下是您可能需要尝试运行的一些其他步骤,但我最终发现它们不是必需的:

  1. 导航到 vcpkg\packages\curl_x64-windows\lib 以找到 libcurl.lib 文件。
  2. 在 Properties -> Linker 下的 Additional Library Directories 中包含 libcurl.lib 的路径
  3. 在 Linker -> Input -> Additional Dependencies 下的 Additional Dependencies 中包含 libcurl.lib
  4. 放置CURL_STATICLIB在属性 -> C/C++ -> 预处理器 -> 预处理器定义

这是我现在工作的代码:

*编辑:这是修复之前对我的旧问题的其余解释:

我正在尝试使用 cURL 进行 API 调用,以便我可以开始获取实时股票数据,但我遇到了困难让它在 VS 2017 中运行。我尝试使用以下步骤使用 vcpckg 进行安装:

根据 vcpkg 文档,我现在应该可以简单地 #include ,但找不到该文件夹​​。如果我尝试从 vcpkg\packages\curl_x86\include 和#include 中包含“include”目录,我可以构建我的项目。我也可以访问一些类,但如果我尝试设置 curl_global_init(CURL_GLOBAL_DEFAULT) ,如本例所示,我会收到链接器错误。

链接器错误 curl_global_init 错误