问题标签 [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.
c++ - 获取 cURL 证书以使用 C++ 和 vcpkg 安装
所以我有一个类在 Visual Studios 2017 中使用 curl 进行 http 调用,该类是通过讨论的 vcpkg 安装的:这里,使用 curl_easy 函数调用:
如果我不包括curl_easy_setopt(curl_handle, CURLOPT_SSL_VERIFYPEER, FALSE);
关闭 SSL 验证的这一行,我会收到错误:curl_easy_perform() failed: Peer certificate cannot be authenticated with given CA certificates
. 我尝试按照以下说明安装证书:链接,但据说将下载的证书放在与 curl.exe 相同的文件夹中。据我所知,vcpkg 没有安装 curl.exe。我查找了 .crt,并在 vcpkg 下找到了找到的证书的图像。我应该在哪里放置 .crt 文件以进行身份验证以与 Visual Studio 一起使用?
c++ - 使用 vcpkg 下载依赖项而不创建 dll
我正在使用vcpkg
下载cpprest
包,所以我可以cpprest
在我的项目中使用:
但是在构建我的项目之后,它会生成可执行的二进制文件,还会cpprest.dll
在Release 文件夹中生成LIBEAY32.dll
SSLEAY32.dll
zlib1.dll
如何将 dll 编译成一个可执行文件?
c++ - 安装点云库
我最近被介绍给vcpkg,因为我一直在寻找安装点云库 (PCL) 的最佳方法,以便在我的 Visual Studio C++ 项目中使用它。
我已经安装了 PLC 静态库.\vcpkg install pcl:x64-windows-static
,然后.\vcpkg integrate install
将 libs 和 dll 集成到 Visual Studio 2017。我现在的目标是在官方 PCL 网站上 运行迭代最近点算法的演示。
我创建了一个处女项目,并执行了以下操作来添加 PCL:
- 将“vcpkg-master\installed\x64-windows-static\include”路径添加到属性页->VC++ 目录->包含目录
- 将“vcpkg-master\installed\x64-windows-static\include”路径添加到属性页
->C/C++ ->Additional Include Directories - 将所有 lib 文件(在 vcpkg-master\installed\x64-windows-static\lib 中的那些)添加到属性页->链接器->附加依赖项
- 在属性页->链接器->常规->附加库目录中添加了“vcpkg-master\installed\x64-windows-static\lib”路径
我正在尝试在 Debug x86 模式下编译前面提到的演示,但我不断收到以下错误:
请注意,在安装的 PCL 目录中,有两个名为manual-link的文件夹。
第一个是“vcpkg-master\installed\x64-windows-static\debug\lib\manual-link”,包含两个lib文件:
- boost_prg_exec_monitor-vc140-mt-gd.lib
- boost_test_exec_monitor-vc140-mt-gd.lib
另一个是“vcpkg-master\installed\x64-windows-static\lib\manual-link”,包括:
- boost_prg_exec_monitor-vc140-mt.lib
- boost_test_exec_monitor-vc140-mt.lib
我不知道我在这里错过了什么。有人在使用 PCL 和 Visual Studio 2017 时遇到过同样的问题吗?这个问题有什么解决办法吗?
c++ - cmake,使用 /MD 和 find_package(Boost) 构建
我有一个 Python 扩展库 (pyd),为了能够调试它,我需要使用多线程 DLL (/MD) 运行时库进行编译。在我注入 Boost 依赖项之前,这很有效。 但我第一次调用 Boost 函数时,代码会因读取访问冲突异常而崩溃。
经过一番调查,结果发现 cmake find_package(Boost) 使用不同的运行时库 ieboost_filesystem-vc140-mt-gd.lib 引入了 boost 库构建
我把它放在一个简单的测试用例中。
使用 vcpkg 构建 boost:
git clone https://github.com/Microsoft/vcpkg.git
.\bootstrap-vcpkg.bat
vcpkg install boost
这只会生成 -mt 和 -md-gd boost 库。
CMakeLists.txt
源码.cpp
运行 cmake:
正如您在输出中看到的那样,cmake 仍然试图找到错误的运行时间并忽略了我的 Boost_USE_STATIC_LIBS 和 Boost_USE_MULTI_THREADED 标志!
这是链接阶段的输出。
更新:我从头开始构建 boost 库,代码停止崩溃。所以这似乎是一个 vcpkg 问题,它没有构建我需要的 boost 版本。
b2 runtime-link=shared -j16
我的新 CmakeList.txt 文件
c++ - 英特尔 TBB -“InitializeCriticalSectionEx”:找不到标识符编译器错误
我有一个依赖于 OpenCV 和 TBB 的 VS (C++) 项目,因此我为每个库创建了属性表并将它们包含在项目中。一切正常,代码已编译。
昨天,我开始使用vcpkg包管理器。我通过 vcpkg 安装了 OpenCV 和 TBB,一切似乎都正常。我创建了一个空项目,包含两者的标头并测试了新编译的库是否有效。验证后,我回到我的主项目并删除了属性表,所以我可以使用来自 vcpkg 的库。自上次成功编译以来,我没有以任何方式更改代码。
但是当我现在尝试编译代码时,我两次收到此错误(在 main.cpp 和子模块中)
tbb\critical_section.h(53):错误 C3861:“InitializeCriticalSectionEx”:找不到标识符
有谁知道这里发生了什么或为什么会发生此错误?
更新
我自己发现了错误。我正在添加 poco-libraries 标签,因为它实际上是 TBB 和 Poco 之间的冲突。
c++ - 我应该使用 Nuget 或 Vcpkg 安装适用于 C++ 的 AWS 开发工具包吗?
我使用 Nuget 安装了适用于 C++ 的 AWS 开发工具包。我的构建工作正常,但是当我尝试运行时,我收到一条丢失的 Dll 消息。我要么必须添加 Dll 路径,要么将其复制到我的输出目录,但源路径是 C:\Users\Tom\Documents\Bitbucket\nos\MyApp\Builds\packages\AWSSDKCPP-Transfer.redist.1.4.34\build \native\bin\Win32\Debug\v141\dynamic\aws-cpp-sdk-transfer.dll 这看起来很荒谬。我找不到使用 Nuget for C++ 执行此操作的更简单方法。
有人建议我改用 Vcpkg。它比 Nuget 更好还是我会遇到同样的问题?
c++ - 级联静态库链接机制
sdl2-image 是作为静态库构建和安装的libSDL2_image.a
,它依赖于另一个静态库,如 webp、libpng 等。当我像这样链接它时:
它失败了,显示错误:
发生了什么?
还有一个问题:
给出一个静态库 libA.a,以及依赖于 libA.a 的 libB.a。如果我将程序与 libB.a 链接,我是否还必须与 libA.a 链接,例如
有必要吗?如果,为什么?如果 libA.a 有其他依赖项并且我不知道,我该怎么办?
c++ - 无法在 Visual Studio 和 vcpkg 中构建 cmake 项目(致命错误 C1083)
我今天安装了 vcpkg,启用了与 Visual Studio 的集成,即 .\vcpkg 集成安装,并开始安装库。
我基本上安装了 cpprestsdk 并触发了 boost 库的安装。然后我在 Visual Studio (CMake) 中打开了该项目。
当我安装 cpprestsdk 时,我收到了这条消息:
所以我的 CMakeLists.txt
但是,当我构建项目时,我遇到了一些关于提升的错误
c:\code\cpprest-client\multipartformdata.cpp(16):致命错误 C1083:无法打开包含文件:'boost/uuid/random_generator.hpp':没有这样的文件或目录
和
c:\code\cpprest-client\api\userapi.h(36):致命错误 C1083:无法打开包含文件:'boost/optional.hpp':没有这样的文件或目录
在我的 powershell 中,我看到安装了这些库
任何想法,发生了什么。我已经为此浪费了几个小时。
mongodb - Mongocxx 连接池(VS Release 版本)连接远程服务器时出现问题
我已经通过 vcpkg 安装(并且已经使用了一段时间)mongocxx 驱动程序,并且所有内容都正确安装并在调试版本中完美运行(我使用的是 Visual Studio 2017,我的应用程序是 Windows Form c++(CLR)应用程序) . 在我的应用程序中,每次我在服务器上上传一些数据时,我都会获得一个连接池并获取一个客户端。我的自动数据上传的典型间隔是 10 分钟。我的设置是
问题是,数据库文档每 10 分钟上传一次,在 Debug 版本中没有问题,但是对于 Release 版本(当我加载我的应用程序的 Release 版本并开始使用它时),mongo insert 每次 10 分钟都不起作用. 它只是错过/跳过了一些条目(根据我的观察,主要是在成功尝试后的一个)。
使用远程计算机中加载的发布版本,即使我运行了调试版本,它也可以在更短的时间间隔内完美运行(例如每个 1 分钟),但我无法进行任何调试。