在OS X上安装GoogleTest问题(Sierra)

问题描述:

我尝试在macOS 10.12上安装GoogleTest以测试C++项目。在OS X上安装GoogleTest问题(Sierra)

我已经检索到最新的源代码,release-1.8.0,并且在构建库时遇到问题。我试过以下内容:

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

没有错误,但是lib文件看起来并没有在我能找到的任何地方创建。

我在这里做错了什么?我不太了解CMake。

+0

是的,它在那里 – arbass

我刚刚在OS X上试过这个;在列出的步骤之后,在build/下有一个名为googlemock/的子目录,其中包含libgmock.agtest/libgtest.a

标题位于googletest/include/gtest/下的主文件夹中。

另外,有可能在this older answer

+0

完美,谢谢,我没想到要在gmock目录中寻找gtest文件。 – arbass

一些指导,您可以使用外部项目这样的:

<<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) 

应该工作。