Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@massenz
Last active December 19, 2022 09:14
Show Gist options
  • Star 22 You must be signed in to star a gist
  • Fork 7 You must be signed in to fork a gist
  • Save massenz/41bb2c8375294f4d9927 to your computer and use it in GitHub Desktop.
Save massenz/41bb2c8375294f4d9927 to your computer and use it in GitHub Desktop.
Describes how to install and run GTest, a Google framework to conduct unit testing in C++

Build and install Google Test

Download the latest (1.7.0) from Google Code (Q: where is it going to live, once GCode shuts down?)

Then follow the primer, but more to the point, the README (YMMV) Having installed CLion and cmake, this is how I built gtest:

brew install cmake
cd gtest-1.7.0
mkdir build
cd build
cmake -Dgtest_build_samples=ON -Dgtest_build_tests=ON /Users/marco/Downloads/gtest-1.7.0
make
make test
./sample1_unittest

NOTE you will need to install cmake on your Mac, I used CLion distribution in:

/Applications/CLion.app/Contents/bin/cmake/bin/cmake

Once this all works, you can "install" it, by putting the generated .a files in a place that can be easily found.

On a Mac OSX, I used the following:

sudo mkdir /usr/local/Cellar/gtest
sudo cp gtest-1.7.0/build/libgtest.a /usr/local/Cellar/gtest/
sudo ln -snf /usr/local/Cellar/gtest/libgtest.a /usr/local/lib/libgtest.a
sudo cp -r gtest-1.7.0/include /usr/local/Cellar/gtest/
ln -snf ../Cellar/gtest/include/gtest /usr/local/include/gtest

You will then need to make it so that gcc can find the includes and the libgtest - for example in CMakeLists.txt add the following:

include_directories(/usr/local/include)
target_link_libraries(test_inet /usr/local/lib/libgtest.a)

It currently appears that CLion gets mightly confused and can't find the includes, but it all compiles and run just fine (see CPP2932).

@straightjacket
Copy link

Thank you! This solved my problem straightaway!

@csukuangfj
Copy link

Informative!

To specify the installation location instead of using the default location, use -D CMAKE_INSTALL_PREFIX=/path/to/installation/directory

@alexperrone
Copy link

You might consider replacing the relative path ln -snf ../Cellar/gtest/include/gtest /usr/local/include/gtest by changing to ln -snf /usr/local/Cellar/gtest/include/gtest /usr/local/include/gtest

@guanhuamai
Copy link

helps a lot.
alexperrone. That's true

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment