Problème similaire ici .
Voici mon CMakeLists.txt:
cmake_minimum_required(VERSION 2.6)
# Locate GTest
find_package(GTest REQUIRED)
include_directories(${GTEST_INCLUDE_DIRS})
# Add test cpp file
add_executable(foo foo.cpp)
# Link test executable against gtest & gtest_main
target_link_libraries(foo ${GTEST_LIBRARIES} ${GTEST_MAIN_LIBRARIES} pthread)
Et mon foo.cpp:
#include <gtest/gtest.h>
TEST(sample_test_case, sample_test)
{
EXPECT_EQ(1, 1);
}
int main(int argc, char **argv)
{
testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}
Maintenant, tout fonctionne bien avec le compilateur g ++. Cependant, lorsque j'essaie d'utiliser le compilateur de QNX, ntox86-c ++, je rencontre ce problème:
Erreur CMake à /usr/share/cmake-2.8/Modules/FindPackageHandleStandardArgs.cmake:97 (MESSAGE): N'A PAS pu trouver GTest (manquant: GTEST_LIBRARY GTEST_INCLUDE_DIR GTEST_MAIN_LIBRARY).
Je suis sur Ubuntu avec le compilateur ntox86-c ++, googletest et cmake-gui.
Ce qui donne?
Le test de Google n'a probablement pas été correctement installé (libgtest-dev
peut installer uniquement les fichiers source devant être compilés). J'ai eu le même problème et j'ai suivi les instructions de http://www.eriksmistad.no/getting-started-with-google-test-on-ubuntu/
Sudo apt-get install libgtest-dev
Sudo apt-get install cmake # install cmake
cd /usr/src/gtest
Sudo cmake CMakeLists.txt
Sudo make
#copy or symlink libgtest.a and libgtest_main.a to your /usr/lib folder
Sudo cp *.a /usr/lib
Cela a fonctionné pour moi.
Comme expliqué par @detrick, le paquet Ubuntu libgtest-dev
installe uniquement les sources, vous devez donc créer et installer les bibliothèques vous-même.
Cependant, il existe un moyen beaucoup plus simple de construction et d'installation que les commandes manuelles dans les autres réponses:
Sudo apt install libgtest-dev build-essential cmake
cd /usr/src/googletest
Sudo cmake .
Sudo cmake --build . --target install
Il y a quelque temps, j'ai créé un fichier docker qui me permet de conserver une sorte de recette pour l'installation ultérieure sur google test sur mes systèmes:
apt-get install -y git g++ make cmake
git clone https://github.com/google/googletest.git
cd googletest
mkdir gbuild && cd gbuild && cmake .. && make
cp -r googletest/include/gtest /usr/local/include
cp gbuild/googlemock/gtest/lib*.a /usr/local/lib
cp gbuild/googlemock/lib*.a /usr/local/lib
J'espère que ça aide :)