32

我正在尝试使用我的数据包管理器Home Brew安装 gtest,但没有它的存储库。我试图从 code.google 下载 gtest 但我不明白如何安装它,因为cmakemake不能解决问题。

4

9 回答 9

38

如果您想要不使用 Homebrew 的最新版本:

git clone https://github.com/google/googletest
cd googletest
mkdir build
cd build
cmake ..
make
make install
于 2017-10-06T17:59:32.397 回答
15

我刚刚使用 cmake 和 make 安装了 gtest。我可以向您展示我是如何手动安装 Google Test 的。这并不复杂,只需按照步骤进行即可。

  1. 从https://github.com/google/googletest/archive/release-1.8.0.zip下载 gtest 文件并解压。
cd googletest-release-1.8.0/googletest/
mkdir bld
cd bld
cmake -DCMAKE_CXX_FLAGS=-std=c++11 ..
make
cp -a ../include/gtest /usr/local/include
cp -a *.a /usr/local/lib
  1. 删除文件夹googletest-release-1.8.0release-1.8.0.zip

如果您想使用 google-test,请使用#include <gtest/gtest.h>.

如果要使用 Google Test 1.7.0 版,只需下载release-1.7.0.zip2. 步骤中的 andcd googletest-release-1.7.0代替cd googletest-release-1.8.0/googletest/. 其余步骤相同。

我添加-DCMAKE_CXX_FLAGS=-std=c++11cmakec++11.

好好享受!


更新后的版本

从 v1.8.0 开始gmock包含在发布文件中。

这是安装gtestgmockv1.8.0 - v1.10.0中的一般步骤。(请随意将1.10.0替换为您想要的版本。)

# download release file and extract files from it
curl -LOk https://github.com/google/googletest/archive/release-1.10.0.tar.gz
tar -zxvf release-1.10.0.tar.gz
rm release-1.10.0.tar.gz

cd googletest-release-1.10.0/
mkdir build
cd build
# build gtest and gmock
cmake -DCMAKE_CXX_FLAGS=-std=c++11 ..
make

# copy requisite c++ files and compiled files to correct directories
cp -a ../googletest/include/* /usr/local/include
cp -a ../googlemock/include/* /usr/local/include
find . -name "*.a" -exec cp -a {} /usr/local/lib \;

# clean
cd ../..
rm -r googletest-release-1.10.0

如果您只想安装gtestnot gmock,您可以执行以下操作:

  1. 删除命令cp -a ../googlemock/include/ /usr/local/include

  2. 代替

     find . -name "*.a" -exec cp -a {} /usr/local/lib \;
    

     find . -name "libgtest*.a" -exec cp -a {} /usr/local/lib \;`
    
于 2017-03-09T23:27:54.760 回答
7

对于“为什么没有存储库?”这个问题。请参阅相关的 gtest 常见问题解答问题。但是,如果您愿意,您可以自己创建公式 - 有关详细信息,请参阅这篇文章(但不确定它是否适用于 1.6)。

但我建议您只安装 gtest:阅读自述文件以获取详细说明。有几个简单的步骤:
下载源代码并将其提取到某个目录gtest_dir
构建目标文件:

g++ -I$gtest_dir/include -I$gtest_dir -c $gtest_dir/src/gtest-all.cc
g++ -I$gtest_dir/include -I$gtest_dir -c $gtest_dir/src/gtest_main.cc

关联:

ar -rv libgtest.a gtest-all.o
ar -rv libgtest_main.a gtest_main.o


注意:如果你想构建支持 C++11 和 libc++ 的 gtest,你需要做一些额外的工作:

于 2013-04-08T06:40:41.330 回答
7

你可以使用这个:

brew install --HEAD https://gist.githubusercontent.com/Kronuz/96ac10fbd8472eb1e7566d740c4034f8/raw/gtest.rb
于 2018-03-11T17:55:41.637 回答
6

这是slund答案的替代解决方案。cmake ..对我不起作用。

cd desktop
git clone https://github.com/google/googletest.git
cd googletest
mkdir build
cd build
cmake -DCMAKE_CXX_COMPILER="c++" -DCMAKE_CXX_FLAGS="-std=c++11 -stdlib=libc++" ../
make
sudo make install
于 2020-03-05T12:24:51.727 回答
2

自制配方: brew install googletest

于 2021-02-08T07:24:05.983 回答
1

最新的 Homebrew 不再支持从 GitHub Gists 安装,因此 @Kronuz 的解决方案不再有效。这是错误:

错误:从任意 URL 调用非校验和下载 gtest 公式文件被禁用!使用 'brew extract' 或 'brew create' 和 'brew tap-new' 在 GitHub 上的 tap 中创建公式文件。

现在可以使用以下命令安装 GoogleTest:

brew install web-eid/gtest/gtest

底层存储库基于@Kronuz 的要点,感谢@Kronuz 创建要点!

于 2020-11-09T20:05:14.487 回答
0

ROS 存储库(http://wiki.ros.org/kinetic/Installation/OSX/Homebrew/Source)有 gtest:

brew tap ros/deps
brew instal gtest
于 2020-02-04T22:13:37.023 回答
0

如果要从源安装它,最简单的方法如下

git clone https://github.com/google/googletest
cd googletest
cmake . -DCMAKE_BUILD_TYPE=Release 
make install
于 2021-12-20T17:09:01.167 回答