2017-04-26 150 views
0

我嘗試在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

回答

0

我剛剛在OS X上試過這個;在列出的步驟之後,在build/下有一個名爲googlemock/的子目錄,其中包含libgmock.agtest/libgtest.a

標題位於googletest/include/gtest/下的主文件夾中。

另外,有可能在this older answer

+0

完美,謝謝,我沒想到要在gmock目錄中尋找gtest文件。 – arbass

0

一些指導,您可以使用外部項目這樣的:

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

應該工作。