- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我安装并集成了最新版本的 vcpkg:
e:\work\vcpkg>vcpkg version
Vcpkg package management program version 0.0.65-692a363701156f1bc319306fbde93fb6748325f6
See LICENSE.txt for license information.
e:\work\vcpkg>vcpkg integrate install
Applied user-wide integration for this vcpkg root.
All C++ projects can now #include any installed libraries.
Linking will be handled automatically.
Installing new libraries will make them instantly available.
我安装了谷歌测试:
e:\work\vcpkg>vcpkg list
gtest:x64-windows 1.8 GoogleTest and GoogleMock testing frameworks.
gtest:x86-windows 1.8 GoogleTest and GoogleMock testing frameworks.
我在 Visual Studio 2015 Update 3 的项目中包含了 gtest.h
:
#include <gtest/gtest.h>
它编译正常,但我有链接器错误:
1>main.obj : error LNK2001: unresolved external symbol "void __cdecl testing::InitGoogleTest(int *,char * *)" (?InitGoogleTest@testing@@YAXPEAHPEAPEAD@Z)
1>main.obj : error LNK2001: unresolved external symbol "public: int __cdecl testing::UnitTest::Run(void)" (?Run@UnitTest@testing@@QEAAHXZ)
1>main.obj : error LNK2001: unresolved external symbol "public: static class testing::UnitTest * __cdecl testing::UnitTest::GetInstance(void)" (?GetInstance@UnitTest@testing@@SAPEAV12@XZ)
显然,Visual Studio 不知道它应该与 gtest.lib
链接。我不明白为什么。 Vcpkg 只说“链接将自动处理”。不知道它将如何执行此操作。
在我项目的“Additional Library Dependencies”中,我可以看到这些继承值:
$(VcpkgRoot)lib
$(VcpkgRoot)lib\manual-link
并且 $(VcpkgRoot)
被解析为 e:\work\vcpkg\installed\x64-windows\
。所以看起来整合是成功的。但是 Visual Studio 如何知道它应该与 gtest.lib
链接?
请注意,如果我手动将 gtest.lib
添加到“附加依赖项”,一切正常,并且 gtest.dll
会自动复制到输出目录。
最佳答案
我认为 gtest
的自动链接行为已被故意禁用,参见 vcpkg issue #306 .问题原评论:here .
vcpkg 实现需要手动链接,因为 Google Test 可以重新定义 main()
,并且 gtest 功能在所有四个单独的库文件中都是重复的。
Official documentation .
每个项目所需的配置:
在:配置属性
> 链接器
> 输入
> 附加依赖项
对于发布构建:
$(VcpkgRoot)lib\manual-link\gtest_main.lib
对于调试构建:
$(VcpkgRoot)debug\lib\manual-link\gtest_main.lib
如果您想创建自己的自定义 main(),请将 gtest_main.lib
替换为 gtest.lib
。
如果要使用gmock,可以将其替换为gmock_main.lib
或gmock.lib
。
关于c++ - vcpkg 不适用于谷歌测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41315739/
如何完全删除 vcpkg 以及它所做的所有安装/系统更改? 我记得看到一些关于 vcpkg 的常见问题解答,其中说您可以删除 vcpkg 文件夹。但是,一个多小时以来,我一直试图找到相同的常见问题解答
我已经安装了 vcpkg,一个 C++ 包管理器。现在过了一段时间,我想更新它。我怎样才能做到这一点?我需要卸载并重新安装吗? 最佳答案 更新 vcpkg git clone 的最佳方法是这样做 在某
我有一个项目使用 2 个不同的包,pkgA 和三元组 x86-windows-static , 和 pkgB, 三元组 x86-windows . 当我尝试编译我的项目时,pkgA 一切正常,因为 $
我想使用这个库,请参阅:https://github.com/jtv/libpqxx 我决定安装这个库管理器vcpkg,请参阅:https://github.com/microsoft/vcpkg 我
例如,如何列出可用的 GDAL 库版本? 它们未通过 vcpkg search gdal 命令列在 VCPKG 软件包网站上。 最佳答案 试试这个!在 vcpkg 支持 pkgs 版本列表之前,这是一
我有一个 github 存储库,它是使用随 vcpkg 安装的库创建的。现在,当我切换到另一台安装了所有库的 vcpkg 机器时,它找不到包含目录。 当我在 Visual Studio 中创建一个新项
我安装并集成了最新版本的 vcpkg: e:\work\vcpkg>vcpkg version Vcpkg package management program version 0.0.65-692a
我试图只构建包的发布版本,因为创建调试版本需要太长时间/太多空间。 Vcpkg 文档指出: Adding set(VCPKG_BUILD_TYPE release) in a triplet: wil
我是 C++ 的新手,需要下载一个包,所以我想我会使用 vcpkg。问题是 vcpkg 比我预期的要慢。这是我的语法: vcpkg install vcpkg需要很多时间,这让我想知道是否有一个标志
我是 C++ 的新手,需要下载一个包,所以我想我会使用 vcpkg。问题是 vcpkg 比我预期的要慢。这是我的语法: vcpkg install vcpkg需要很多时间,这让我想知道是否有一个标志
我正在尝试使用 vcpkg tool 编译 dlib 19.4 因为我在编译 CMAKE 和使用 Boost.Python 时遇到问题 修复 dlib 的编译器问题。 虽然我在运行基本步骤时遇到了问题
我已经安装了ffmpeg使用 vcpkg install ffmpeg当我在我的 cmake 项目中包含依赖项时,如下所示: find_path(AVCODEC_INCLUDE_DIR libavco
我喜欢 vcpkg 的想法,但我想我更愿意坚持使用 MinGW 作为我的编译器。 我找不到关于我是否可以设置(或如何设置)vcpkg 以便它为 MinGW 而不是 MSVC 编译包的任何资源。如果可能
我在 vcpkg 中安装了一个新库,即 ITK,现在我正在尝试编译其指南中提供的第一个代码示例,我通过 vcpkg 安装了它,所以我跳过了安装部分(该指南中提供)并立即在 Visual Studio
我想在 Windows 的 CMake 项目中使用 vcpkg,因为我需要 boost 和 xerces,它们都由这个包管理器处理. 我有以下CMakeLists.txt: cmake_minimum
使用 vcpkg 安装软件包后,会显示帮助文本,例如... The package fmt:x64-windows provides CMake targets: find_package(f
我需要从 ftp 服务器下载文件,我使用 libcurl ftpget.c 找到了这个示例。它在带有 gcc 的 Linux 中运行得很好,但我希望我的程序也能在 Windows 中运行。我注意到 v
我使用 vcpkg 作为我的包管理器,按照示例很容易构建 example用sqlite。 之后我成功安装了 botan 并尝试使用find_package(botan REQUIRED) 如示例所示
我正在使用vcpkg下载cpprest包,所以我可以在我的项目中使用cpprest: #include #include 但在构建我的项目后,它会生成可执行二进制文件,还会生成 cpprest.d
我尝试安装 vcpkg在 Windows 10 上。我按照快速入门部分的步骤操作,但是当我尝试运行此命令时出现错误: .\vcpkg install sdl2 curl 错误: error check
我是一名优秀的程序员,十分优秀!