【问题标题】:Issue installing GoogleTest on OS X (Sierra)在 OS X (Sierra) 上安装 GoogleTest 时出现问题
【发布时间】:2017-04-26 12:04:02
【问题描述】:

我正在尝试安装 GoogleTest 以在 macOS 10.12 上测试 C++ 项目。

我已检索到最新的源版本 1.8.0,但在构建库时遇到了问题。我尝试了以下方法:

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

没有错误,但是似乎没有在我能找到的任何地方创建 lib 文件。

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

【问题讨论】:

  • 是的,它在那里

标签: c++ googletest


【解决方案1】:

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

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

或者,this older answer 中可能有一些指导

【讨论】:

  • 完美,谢谢,我没想到要在 gmock 目录中查找 gtest 文件。
【解决方案2】:

您可以像这样使用外部项目

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

应该可以。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-06-04
    • 1970-01-01
    • 2018-12-02
    • 2015-07-08
    • 1970-01-01
    • 2016-10-31
    • 2018-01-14
    • 2011-07-06
    相关资源
    最近更新 更多