在 OS X (Sierra) 上安装 GoogleTest 时出现问题
Issue installing GoogleTest on OS X (Sierra)
我正在尝试安装 GoogleTest 以在 macOS 10.12 上测试 C++ 项目。
我已检索到最新源代码 release-1.8.0,但在构建库时遇到问题。我尝试了以下方法:
$ cd googletest-release-1.8.0
$ mkdir build
$ cd build
$ cmake ..
$ make
没有错误,但是在我能找到的任何地方似乎都没有创建 lib 文件。
我在这里做错了什么?我对CMake不是很了解
我刚在 OS X 上试过这个;在您列出的步骤之后,build/
下有一个名为 googlemock/
的子目录,其中包含 libgmock.a
和 gtest/libgtest.a
。
headers 位于 googletest/include/gtest/
下的主文件夹中。
中可能有一些指导
您可以像这样使用外部项目:
<<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)
应该可以。
我正在尝试安装 GoogleTest 以在 macOS 10.12 上测试 C++ 项目。
我已检索到最新源代码 release-1.8.0,但在构建库时遇到问题。我尝试了以下方法:
$ cd googletest-release-1.8.0
$ mkdir build
$ cd build
$ cmake ..
$ make
没有错误,但是在我能找到的任何地方似乎都没有创建 lib 文件。
我在这里做错了什么?我对CMake不是很了解
我刚在 OS X 上试过这个;在您列出的步骤之后,build/
下有一个名为 googlemock/
的子目录,其中包含 libgmock.a
和 gtest/libgtest.a
。
headers 位于 googletest/include/gtest/
下的主文件夹中。
您可以像这样使用外部项目:
<<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)
应该可以。