2017-04-26 1 views
0

Je tente d'installer GoogleTest pour tester un projet C++ sur macOS 10.12.Problème lors de l'installation de GoogleTest sous OS X (Sierra)

J'ai récupéré la dernière source, la version-1.8.0 et j'ai des problèmes pour construire la bibliothèque. Je l'ai essayé ce qui suit:

$ cd googletest-release-1.8.0 
$ mkdir build 
$ cd build 
$ cmake .. 
$ make 

Il n'y a pas d'erreurs, mais les fichiers lib ne semblent pas être créés partout où je peux trouver.

Qu'est-ce que je fais mal ici? Je ne sais pas trop sur CMake.

+0

Ouais, c'est là – arbass

Répondre

0

Je viens de l'essayer sur OS X; après les étapes que vous avez listées, il y a un sous-répertoire sous build/ appelé googlemock/ contenant libgmock.a et gtest/libgtest.a.

Les en-têtes se trouvent dans le dossier principal sous googletest/include/gtest/.

Sinon, il y a peut-être quelques conseils dans this older answer

+0

Parfait, merci, je n'ai pas pensé à chercher les fichiers gtest dans le répertoire gmock. – arbass

0

Vous pouvez utiliser Projet externe comme ceci:

<<CMakeLists.txt>> 

cmake_minimum_required(VERSION 2.6) 
project(myproject) 

# Enable ExternalProject CMake module 
include(ExternalProject) 


# Download and install GoogleTest 
ExternalProject_Add(
    gtest 
    URL https://github.com/google/googletest/archive/release-1.8.0.zip 
    PREFIX include/gtest 
    # Disable install step 
    INSTALL_COMMAND "" 
) 

# Create a libgtest target to be used as a dependency by test programs 
add_library(libgtest IMPORTED STATIC GLOBAL) 
add_dependencies(libgtest gtest) 

# Set gtest properties 
ExternalProject_Get_Property(gtest source_dir binary_dir) 
set_target_properties(libgtest PROPERTIES 
    IMPORTED_LOCATION "${binary_dir}/googlemock/gtest/libgtest.a" 
    IMPORTED_LINK_INTERFACE_LIBRARIES "${CMAKE_THREAD_LIBS_INIT}" 
# "INTERFACE_INCLUDE_DIRECTORIES" "${source_dir}/include" 
) 
# I couldn't make it work with INTERFACE_INCLUDE_DIRECTORIES 
set(GTEST_LIB "${source_dir}/googletest/include") 

# Create a libgmock target to be used as a dependency by test programs 
add_library(libgmock IMPORTED STATIC GLOBAL) 
add_dependencies(libgmock gmock) 

include_directories(${GTEST_LIB} ${GMOCK_LIB}) 
add_executable(test_exec testmain.cpp someotherfile.cpp) 
target_link_libraries(test_exec libgtest libgmock) 

devrait fonctionner.