我正在尝试使用我的数据包管理器Home Brew安装 gtest,但没有它的存储库。我试图从 code.google 下载 gtest 但我不明白如何安装它,因为cmake和make不能解决问题。
9 回答
如果您想要不使用 Homebrew 的最新版本:
git clone https://github.com/google/googletest
cd googletest
mkdir build
cd build
cmake ..
make
make install
我刚刚使用 cmake 和 make 安装了 gtest。我可以向您展示我是如何手动安装 Google Test 的。这并不复杂,只需按照步骤进行即可。
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. 步骤中的 andcd 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
包含在发布文件中。
这是安装gtest
和gmock
在v1.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
如果您只想安装gtest
not 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 \;`
对于“为什么没有存储库?”这个问题。请参阅相关的 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,你需要做一些额外的工作:
- 补丁 gtest-port.h
clang++ -std=c++11 -stdlib=libc++
使用而不是构建g++
你可以使用这个:
brew install --HEAD https://gist.githubusercontent.com/Kronuz/96ac10fbd8472eb1e7566d740c4034f8/raw/gtest.rb
这是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
自制配方:
brew install googletest
最新的 Homebrew 不再支持从 GitHub Gists 安装,因此 @Kronuz 的解决方案不再有效。这是错误:
错误:从任意 URL 调用非校验和下载 gtest 公式文件被禁用!使用 'brew extract' 或 'brew create' 和 'brew tap-new' 在 GitHub 上的 tap 中创建公式文件。
现在可以使用以下命令安装 GoogleTest:
brew install web-eid/gtest/gtest
底层存储库基于@Kronuz 的要点,感谢@Kronuz 创建要点!
ROS 存储库(http://wiki.ros.org/kinetic/Installation/OSX/Homebrew/Source)有 gtest:
brew tap ros/deps
brew instal gtest
如果要从源安装它,最简单的方法如下
git clone https://github.com/google/googletest
cd googletest
cmake . -DCMAKE_BUILD_TYPE=Release
make install