【发布时间】:2013-03-28 23:20:26
【问题描述】:
我正在尝试使用我的数据包管理器 Home Brew 安装 gtest,但没有它的存储库。我试图从 code.google 下载 gtest 但我不明白如何安装它,因为 cmake 和 make 不能解决问题。
【问题讨论】:
标签: macos repository installation homebrew googletest
我正在尝试使用我的数据包管理器 Home Brew 安装 gtest,但没有它的存储库。我试图从 code.google 下载 gtest 但我不明白如何安装它,因为 cmake 和 make 不能解决问题。
【问题讨论】:
标签: macos repository installation homebrew googletest
如果你想从源安装它最简单的方法如下
git clone https://github.com/google/googletest
cd googletest
cmake . -DCMAKE_BUILD_TYPE=Release
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
底层repository 是基于@Kronuz 的要点,感谢@Kronuz 的创建要点!
【讨论】:
我刚刚使用 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. 步骤中使用 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 \;`
【讨论】:
这是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
【讨论】:
-stdlib=libc++ 解决了这个问题。
ROS 存储库 (http://wiki.ros.org/kinetic/Installation/OSX/Homebrew/Source) 具有 gtest:
brew tap ros/deps
brew instal gtest
【讨论】:
你可以用这个:
brew install --HEAD https://gist.githubusercontent.com/Kronuz/96ac10fbd8472eb1e7566d740c4034f8/raw/gtest.rb
【讨论】:
如果您想要不使用 Homebrew 的最新版本:
git clone https://github.com/google/googletest
cd googletest
mkdir build
cd build
cmake ..
make
make install
【讨论】:
No rule to make target 'install'的make install之外的所有东西都有效
make 失败.. 尝试cmake .. -DCMAKE_CXX_STANDARD=17 然后make。引用自:github.com/google/googletest/issues/1519#issuecomment-593001952
对于“为什么没有它的存储库?”这个问题。见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,你需要做一些额外的工作:
clang++ -std=c++11 -stdlib=libc++ 而不是g++ 构建
【讨论】: