如何使用自制软件在 Mac OS X 上安装 GTest?
Posted
技术标签:
【中文标题】如何使用自制软件在 Mac OS X 上安装 GTest?【英文标题】:How to install GTest on Mac OS X with homebrew? 【发布时间】:2013-03-28 23:20:26 【问题描述】:我正在尝试使用我的数据包管理器 Home Brew 安装 gtest,但没有它的存储库。我试图从 code.google 下载 gtest 但我不明白如何安装它,因为 cmake 和 make 不能解决问题。
【问题讨论】:
【参考方案1】:如果你想从源安装它最简单的方法如下
git clone https://github.com/google/googletest
cd googletest
cmake . -DCMAKE_BUILD_TYPE=Release
make install
【讨论】:
【参考方案2】:自制配方:
brew install googletest
【讨论】:
【参考方案3】:最新的 Homebrew 不再支持从 GitHub Gists 安装,因此@Kronuz 的解决方案不再有效。这是错误:
错误:从任意 URL 调用非校验和下载 gtest 公式文件被禁用!使用 'brew extract' 或 'brew create' 和 'brew tap-new' 在 GitHub 上的 tap 中创建公式文件。
现在可以使用以下命令安装 GoogleTest:
brew install web-eid/gtest/gtest
底层repository 是基于@Kronuz 的要点,感谢@Kronuz 的创建要点!
【讨论】:
【参考方案4】:我刚刚使用 cmake 和 make 安装了 gtest。我可以向您展示我是如何手动安装 Google Test 的。并不复杂,按照步骤来即可。
-
从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
-
删除文件夹
googletest-release-1.8.0
和release-1.8.0.zip
如果您想使用 google-test,请使用#include <gtest/gtest.h>
。
如果您想使用 Google Test 1.7.0 版,只需下载 release-1.7.0.zip
并在 2. 步骤中使用 cd googletest-release-1.7.0
而不是 cd googletest-release-1.8.0/googletest/
。其余步骤相同。
我添加了标志-DCMAKE_CXX_FLAGS=-std=c++11
以将cmake
与c++11
一起使用。
尽情享受吧!
更新版本
从 v1.8.0 开始 gmock
包含在发布文件中。
以下是在 v1.8.0 - v1.10.0 中安装 gtest
和 gmock
的一般步骤。 (请随意将 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
如果您只想安装gtest
而不是gmock
,您可以执行以下操作:
删除命令cp -a ../googlemock/include/ /usr/local/include
替换
find . -name "*.a" -exec cp -a /usr/local/lib \;
与
find . -name "libgtest*.a" -exec cp -a /usr/local/lib \;`
【讨论】:
这是更正确的答案! master时不时有问题,最好安装已发布的版本。【参考方案5】:这是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
【讨论】:
这是在 Mac OS 和 Ubuntu 上都适用于我的命令。在 Ubuntu 上,我收到一个错误“无法识别的 stdlib”,删除-stdlib=libc++
解决了这个问题。【参考方案6】:
ROS 存储库 (http://wiki.ros.org/kinetic/Installation/OSX/Homebrew/Source) 具有 gtest:
brew tap ros/deps
brew instal gtest
【讨论】:
【参考方案7】:你可以用这个:
brew install --HEAD https://gist.githubusercontent.com/Kronuz/96ac10fbd8472eb1e7566d740c4034f8/raw/gtest.rb
【讨论】:
【参考方案8】:如果您想要不使用 Homebrew 的最新版本:
git clone https://github.com/google/googletest
cd googletest
mkdir build
cd build
cmake ..
make
make install
【讨论】:
可能听起来很蠢,但是你可以在安装后删除 git repo 吗? @MathieuChâteauvert 你可以。最后一个命令“make install”编译项目并将输出文件安装在系统库路径中,因此之后删除源代码不会改变任何内容。 除了提供No rule to make target 'install'
的make install
之外的所有东西都有效
最好将标签安装在存储库的已发布部分下。如果主分支不完全正确,执行上述操作会导致错误!对我来说,版本 v1.8.1 有效。下载 tar 文件,解压缩,然后从第 3 行开始使用以结束上述答案。
如果make
失败.. 尝试cmake .. -DCMAKE_CXX_STANDARD=17
然后make
。引用自:github.com/google/googletest/issues/1519#issuecomment-593001952【参考方案9】:
对于“为什么没有它的存储库?”这个问题。见related gtest FAQ question。但是,如果您愿意,您可以自己创建公式 - 有关详细信息,请参阅 this post(但不确定它是否适用于 1.6)。
但我建议您只安装 gtest:阅读readme 以获取详细说明。有几个简单的步骤:
下载源代码并将其提取到某个目录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,你需要做一些额外的工作:
patch gtest-port.h 使用clang++ -std=c++11 -stdlib=libc++
而不是g++
构建
【讨论】:
这很烦人,因为包含的 Makefile(截至 2016 年 2 月 4 日)为 gtest_main 创建了一个库,而不是为 gtest-all 创建了一个库。另外,大多数教程都引用了名称 libgtest,除非您手动指定,否则该名称似乎不存在,如您的答案中所示。感谢您的提示!以上是关于如何使用自制软件在 Mac OS X 上安装 GTest?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Mac OS 上使用自制软件将 postgresql 从 10.1 降级到 9.6 [关闭]
在 Mac OS X 上使用 pip 安装 pyopencv
在 Mac OS X 上组装项目时出现“没有这样的指令”错误