【问题标题】:GTest build first at CMake [duplicate]GTest首先在CMake构建[重复]
【发布时间】:2017-03-02 07:19:24
【问题描述】:

我正在构建动态库并想使用 gtest 进行测试。

SET(GTEST_LIBRARY libs/googletest-master)
set(GTEST_INCLUDE_DIR libs/googletest-master/googletest/include)
#set(GTEST_MAIN_LIBRARY libs/googletest-master/googletest/include/gtest)

#find_package(PostgreSQL REQUIRED)

enable_testing()
find_package(GTest REQUIRED)
include_directories(${GTEST_INCLUDE_DIR})

但是,为了设置 GTEST_MAIN_LIBRARY,我必须先构建它。 我如何配置 CMake 来实现这一目标

  1. 使用 Cmake && make 构建 gtest(在 unix 上)
  2. 获取 GTEST_MAIN_LIBRARY 的适当路径
  3. 继续构建

【问题讨论】:

  • 你的问题很难理解(格式、一些粗体、换行...),你能改进一下吗?
  • 请重新格式化您的问题,以便更直接地了解正在发生的事情。

标签: c++ cmake googletest


【解决方案1】:

我将 gtests srcs 复制到项目中 使用 Make 构建 并将其添加到 CMake

add_subdirectory(libs/googletest-master)

SET(GTEST_LIBRARY libs/googletest-master)
set(GTEST_INCLUDE_DIR libs/googletest-master/googletest/include)
set(GTEST_MAIN_LIBRARY libs/googletest-master/googlemock/gtest)

enable_testing()
find_package(GTest REQUIRED)
include_directories(${GTEST_INCLUDE_DIR})
include_directories(${gtest_SOURCE_DIR}/include ${gtest_SOURCE_DIR})

【讨论】:

    【解决方案2】:

    如果您将 googletest 的源代码放在 CMakeLists.txt 文件所在的子目录中,则以下操作应该有效:

    add_subdirectory(./googletest)
    
    add_executable(your_program ${MY_SRC})
    
    add_dependencies(your_program gmock)
    add_dependencies(your_program gtest)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-11-10
      • 2020-08-19
      • 2016-11-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多