我如何知道我正在使用的项目中使用的是哪个版本的Gtest?我正在开发一个Linux平台。
答案 0 :(得分:1)
libgtest
或libgtest_main
库的源代码不包含允许识别其版本的特殊功能(类似GetGTestVersion ()
或其他内容)。
头文件也没有任何已定义的标识符(类似GTEST_VERSION
或其他内容)。
因此,您无法在运行时在用户代码中检查Google C++ Testing Framework
的版本。
但是维护者提供了框架特殊脚本scripts/gtest-conf的一部分,其中包括:
...
provides access to the necessary compile and linking
flags to connect with Google C++ Testing Framework, both in a build prior to
installation, and on the system proper after installation.
...
除此之外,此脚本还有几个与版本相关的选项:
...
Installation Queries:
...
--version the version of the Google Test installation
Version Queries:
--min-version=VERSION return 0 if the version is at least VERSION
--exact-version=VERSION return 0 if the version is exactly VERSION
--max-version=VERSION return 0 if the version is at most VERSION
...
该脚本还包含它的用法示例:
Examples:
gtest-config --min-version=1.0 || echo "Insufficient Google Test version."
...
这意味着用户可以使用脚本gtest-config
在构建时测试框架的版本。
注意强>:
脚本gtest-config
在配置期间通过configure.ac中声明的变量获取框架的实际版本。
...
AC_INIT([Google C++ Testing Framework],
[1.7.0],
[googletestframework@googlegroups.com],
[gtest])
...
在调用autoconf
后,configure
文件中填写了以下标识符:
...
# Identity of this package.
PACKAGE_NAME='Google C++ Testing Framework'
PACKAGE_TARNAME='gtest'
PACKAGE_VERSION='1.7.0'
PACKAGE_STRING='Google C++ Testing Framework 1.7.0'
PACKAGE_BUGREPORT='googletestframework@googlegroups.com'
PACKAGE_URL=''
...
# Define the identity of the package.
PACKAGE='gtest'
VERSION='1.7.0'
...
对于使用选项AC_CONFIG_HEADERS编译的框架,此标识符存储在文件build-aux/config.h
中,并且在编译时可供用户使用。
答案 1 :(得分:0)
gtest主目录中的文件CHANGES包含gtest版本号。
答案 2 :(得分:0)
如果您克隆了official repo,则可以检查Google Test目录中最新的Git提交(例如使用git log -n 1
或git rev-parse HEAD
),并将其与{{3 }}。
在我的情况下,提交哈希是ec44c6c1675c25b9827aacd08c02433cccde7780,它对应于1.8.0版。