如何使用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失败
于是我去官网看看有没有Google test,按理来说这种流行的库应该有的
搜索之后发现,原来他叫gtest,草率了。
又显示需要我的cmake版本3.25.0以上,他给我下载太慢了,我还是使用brew更新吧。等了23分钟,终于跟新好了。
再次执行./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
然后进入目录编译。
编译之后执行程序,发现已经成功了,这样子,也很方便。
引用
https://github.com/microsoft/vcpkg/blob/master/README_zh_CN.md