如何使用自制软件在Mac OS X上安装GTest?

a-r*_*kin 19 macos homebrew install repository googletest

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

slu*_*und 27

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

git clone https://github.com/google/googletest
cd googletest
mkdir build
cd build
cmake ..
make
make install
Run Code Online (Sandbox Code Playgroud)

  • 如果“make”失败..尝试“cmake .. -DCMAKE_CXX_STANDARD=17”,然后“make”。引用自:https://github.com/google/googletest/issues/1519#issuecomment-593001952 (3认同)

cod*_*ody 7

对于"为什么没有存储库?"这个问题.看相关的gtest FAQ问题.但是如果你愿意,你可以自己创建公式 - 请参阅这篇文章了解详细信息(但不确定它是否适用于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
Run Code Online (Sandbox Code Playgroud)

链接:

ar -rv libgtest.a gtest-all.o
ar -rv libgtest_main.a gtest_main.o
Run Code Online (Sandbox Code Playgroud)


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


小智 6

您可以使用此:

brew install --HEAD https://gist.githubusercontent.com/Kronuz/96ac10fbd8472eb1e7566d740c4034f8/raw/gtest.rb
Run Code Online (Sandbox Code Playgroud)


小智 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
Run Code Online (Sandbox Code Playgroud)


Zhi*_*wei 5

我刚用cmake和make安装了gtest.我可以告诉你我是如何手动安装Google Test的.按照步骤,这并不复杂.

  1. https://github.com/google/googletest/archive/release-1.8.0.zip下载gtest文件并解压缩.
  2. cd googletest-release-1.8.0/googletest/ mkdir bld cd bld cmake .. make cp -a ../include/gtest /usr/local/include cp -a *.a /usr/local/lib
  3. 删除文件夹googletest-release-1.8.0release-1.8.0.zip

如果你想使用谷歌测试,请使用#include <gtest/gtest.h>.

如果你想使用谷歌测试版1.7.0,只需下载release-1.7.0.zip和2.步骤使用cd googletest-release-1.7.0而不是cd googletest-release-1.8.0/googletest/.其余步骤是相同的​​.

好好享受!


小智 5

自制配方: brew install googletest