如何使用vcpkg快速安装googletest,

相信使用惯了java和python的包管理工具,来到什么都需要编译的C++世界,很多人都不适应。

针对C++的包管理,微软提出了解决方案,那就是vcpkg,有几点好处,跨平台的,并且与cmake集成很方便。相当于有了cmake和vcpkg之后,你的项目管理会变得非常方便。

安装vcpkg的前置条件是必须有git,注意windows平台需要安装Visual Studio,macos需要安装Xcode,unix需要g++ >= 6

我的环境是macos ventura

执行如下命令:

​
git clone https://github.com/microsoft/vcpkg
./vcpkg/bootstrap-vcpkg.sh
# 如果win平台把.sh改为.bat

​

期间我网卡了,挂了梯子才下成功。

googletest使用vcpkg编译-LMLPHP

第一次安装googletest失败

于是我去官网看看有没有Google test,按理来说这种流行的库应该有的

Browse public vcpkg packages

搜索之后发现,原来他叫gtest,草率了。

又显示需要我的cmake版本3.25.0以上,他给我下载太慢了,我还是使用brew更新吧。等了23分钟,终于跟新好了。

googletest使用vcpkg编译-LMLPHP

再次执行./vcpkg install gtest,这下终于安装好了。

在系统变量中申明VCPKG_ROOT为你的vcpkg安装目录。我是在~/.zshrc中

比如:

echo "export VCPKG_ROOT=/Users/fu/workspace/git/vcpkg" >> ~/.zshrc

如果是windows上的环境变量,可自己搜索如何做,很简单。

然后写一个CMakeLists.txt来测试,

cmake_minimum_required(VERSION 3.14)



set(CMAKE_TOOLCHAIN_FILE "$ENV{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake"

  CACHE STRING "Vcpkg toolchain file")



project(my_project)



add_executable(

  hello_test

  hello_test.cc

)

find_package(GTest CONFIG REQUIRED)

target_link_libraries(hello_test PRIVATE GTest::gmock GTest::gtest GTest::gmock_main GTest::gtest_main)

在加入文件hello_test.cc

#include <gtest/gtest.h>

// Demonstrate some basic assertions.

TEST(HelloTest, BasicAssertions) {

  // Expect two strings not to be equal.

  EXPECT_STRNE("hello", "world");

  // Expect equality.

  EXPECT_EQ(7 * 6, 42);

}

输入命令,cmake -S . -B build

然后进入目录编译。

googletest使用vcpkg编译-LMLPHP

编译之后执行程序,发现已经成功了,这样子,也很方便。

googletest使用vcpkg编译-LMLPHP

引用

https://github.com/microsoft/vcpkg/blob/master/README_zh_CN.md

12-08 21:59