标签: vcpkg

如何删除 vcpkg 和所有使用 vcpkg 安装的库

如何完全删除 vcpkg 以及它所做的所有安装/系统更改?

我记得看到一些关于 vcpkg 的常见问题解答,其中说您可以删除 vcpkg 文件夹。但是,一个多小时以来,我一直试图找到相同的常见问题解答,但无济于事。此外,“仅删除文件夹”作为解决方案对我来说似乎难以置信,因为我假设 vcpkg 更改了一些环境变量或其他设置,以及与我尝试使用的 Visual Studio 的集成。关于这个主题的在线搜索只会让人们讨论如何一次删除多个已安装的库,甚至没有明确的解决方案(我也会对此感兴趣)。vcpkg 网站本身似乎没有提供这个问题的答案。

编辑:我在docs.microsoft发现页面上写着“只需删除文件夹” 。

vcpkg

15
推荐指数
1
解决办法
2万
查看次数

cmake 找不到用 vcpkg 安装的库

我想vcpkg在 Windows 的 CMake 项目中使用,因为我需要boost并且xerces都由这个包管理器处理。

我有以下几点CMakeLists.txt

cmake_minimum_required (VERSION 3.12.0)

project (myproj)

set (CMAKE_PREFIX_PATH ${XERCES_ROOT})
set (Boost_USE_STATIC_LIBS ON)
set (Boost_USE_MULTITHREADED ON)
unset (Boost_INCLUDE_DIR CACHE)
unset (Boost_LIBRARY_DIRS CACHE)

# set (CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../cmake/modules)
find_package (Boost COMPONENTS filesystem regex REQUIRED)
find_package (XercesC CONFIG REQUIRED)

set (CMAKE_INCLUDE_CURRENT_DIR ON)
message (STATUS "binary dir is ${CMAKE_BINARY_DIR}")
include_directories (${CMAKE_BINARY_DIR}/${PROJECT_NAME}/)
include_directories (${CMAKE_CURRENT_SOURCE_DIR}/..)
include_directories (${Boost_INCLUDE_DIRS})
include_directories (${XercesC_INCLUDE_DIRS})

set (PROJECT_SRC
  code.cpp
  )

add_library (${PROJECT_NAME} SHARED ${PROJECT_SRC})
add_dependencies (${PROJECT_NAME} UPDATE_RESOURCES)
target_link_libraries (${PROJECT_NAME} ${Boost_LIBRARIES} XercesC::XercesC) …
Run Code Online (Sandbox Code Playgroud)

c++ boost cmake xerces vcpkg

12
推荐指数
3
解决办法
1万
查看次数

无法在 CLion 中使用与 VCPKG 一起安装的库

我遵循了 VCPKG github 站点中描述的教程 ,然后安装了 OpenMesh 8.0,之后,我链接了工具链

-DCMAKE_TOOLCHAIN_FILE=/home/diolante/vcpkg/scripts/buildsystems/vcpkg.cmake 
Run Code Online (Sandbox Code Playgroud)

在 Clion 工具链设置中,当我重新加载CMakeLists.txt我在 Clion 项目中更改的内容时:

# CMakeLists.txt
cmake_minimum_required(VERSION 3.14)
project(lul)

find_package(openmesh REQUIRED)

add_executable(main main.cpp)
target_link_libraries(main openmesh)
Run Code Online (Sandbox Code Playgroud)

Clion 输出返回以下错误:

CMake Error at /home/diolante/vcpkg/scripts/buildsystems/vcpkg.cmake:288 (_find_package):   By not providing "Findopenmesh.cmake" in CMAKE_MODULE_PATH this project has   asked CMake to find a package configuration file provided by "openmesh",   but CMake did not find one.

  Could not find a package configuration file provided by "openmesh" with any
  of the following names:

    openmeshConfig.cmake
    openmesh-config.cmake

  Add the …
Run Code Online (Sandbox Code Playgroud)

cmake clion openmesh vcpkg

10
推荐指数
1
解决办法
1359
查看次数

什么是 __CxxFrameHandler4 以及链接器错误“未解析的外部符号 __CxxFrameHandler4”究竟是什么意思?

我正在使用通过 vcpkg 构建的几个库(例如 civet-web 和 prometheus-cpp),用于我的 Visual C++ 项目。当构建 x86 一切都完美时,在 x64 中我收到一堆链接器错误:

错误 LNK2001:未解析的外部符号 __CxxFrameHandler4

在线搜索对这个符号/错误的所有引用都是关于特定项目的,我找不到 __CxxFrameHandler4什么以及这个错误突出显示了什么问题。我不知道是 vcpkg 构建库的方式有问题,还是我的项目有问题,或者如何开始寻找解决方案。

我确实找到了这篇博客文章,但它参考了 VS2019 的预览,我找不到与之相关的任何设置:https ://devblogs.microsoft.com/cppblog/making-cpp-exception-handling-smaller-x64/

如果有人能解释这一切,那将是一个很大的帮助。

visual-studio visual-c++ vcpkg

10
推荐指数
1
解决办法
4097
查看次数

让cURL与Visual Studio 2017一起使用

*编辑:我按照这些步骤在64位机器上使用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. 打开a VS 2017 Command prompt并导航到vcpkg文件夹(其中vcpkg.exe)
  2. 运行:( vcpkg install curl[*]:x64-windows注意这可能需要大约半小时才能下载并运行,如果它看起来像是"卡在"部件,请不要担心).

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

  3. 完成此步骤后,应检查以确保正确安装卷曲.为此,您应该在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);在请求之前放置代码(见下文).请注意,这只是必要的,因为我无法弄清楚如何使用卷曲来使用证书.我有一个关于这个问题的AS-的,但没有答案计算器后这里.

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

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

c++ linker curl visual-studio-2017 vcpkg

9
推荐指数
1
解决办法
8776
查看次数

如何从 vcpkg 检索 cmake 目标名称?

安装软件包后,vcppkg 非常有帮助地显示相关的 CMake 目标...

包 libwebp:x64-windows 提供 CMake 目标:

find_package(WebP CONFIG REQUIRED)
target_link_libraries(main PRIVATE WebP::webp WebP::webpdemux WebP::libwebpmux WebP::webpdecoder)
Run Code Online (Sandbox Code Playgroud)

但是,如果您不复制它们,那么您可能再也见不到它们了。至少我找不到他们。有谁知道如何为已安装的软件包检索此信息?

cmake vcpkg target-link-libraries

9
推荐指数
1
解决办法
288
查看次数

VCPKG:列出软件包的可用版本

例如,如何列出可用的 GDAL 库版本?
它们没有通过vcpkg search gdal命令列在 VCPKG 软件包网站上。

vcpkg

9
推荐指数
2
解决办法
6521
查看次数

现实中如何使用Visual Studio中的vcpkg安装包?

在这里

在 Visual Studio 中,您可以创建一个新项目(或打开一个现有项目)。所有已安装的库都可以立即#include 并在您的项目中使用,无需额外配置。

现实情况并非如此。如果我这样做New Project并从头开始创建控制台或 CMake 应用程序并包含一些 CGAL(因为我已安装 CGAL vgpkg),我(显然)会收到错误消息,指出CGAL未找到包含内容。

怎么修?是否可以将 vcpkg 的路径放在 Visual Studio 中的某个位置或其他位置?


vcpkg integrate install也没有帮助。

D:\dev\vcpkg>vcpkg integrate install
Applied user-wide integration for this vcpkg root.

All MSBuild C++ projects can now #include any installed libraries.
Linking will be handled automatically.
Installing new libraries will make them instantly available.

CMake projects should use: "-DCMAKE_TOOLCHAIN_FILE=D:/dev/vcpkg/scripts/buildsystems/vcpkg.cmake"
Run Code Online (Sandbox Code Playgroud)

它声称它会起作用,但事实并非如此

在此输入图像描述

显然,这是因为世界上没有魔法。

那么,“无需额外配置”我还忘记了什么?

c++ visual-studio vcpkg

8
推荐指数
1
解决办法
2万
查看次数

如何使用 vpckg 清单文件安装静态库版本?

我试图弄清楚如何配置我的清单文件以使用 vcpkg 的新清单功能编译我的库的静态版本。我当前的清单文件是:

{
  "name": "myProject",
  "version-string": "v0.1",
  ],
  "dependencies": [
    {
      "name": "curl",
      "features" : [
        "openssl"
      ],
      "platform" : "(windows & x64 & static)"
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

但这会导致没有安装任何内容。该选项"platform" : "windows"x86-windows三元组安装,但我无法找出 的正确参数x64-windows-static

我也很好奇——有没有办法为所有库声明一个三元组,而不是让每个库成为一个 JSON 对象并专门列出它?

c++ windows visual-studio vcpkg

8
推荐指数
1
解决办法
2861
查看次数

如何更新vcpkg本身?

我已经安装了 vcpkg,一个 C++ 包管理器。现在过了一段时间,我想更新一下。我怎样才能做到这一点?我需要卸载并重新安装吗?

vcpkg

7
推荐指数
2
解决办法
1万
查看次数