gpt4 book ai didi

c++ - 如何从我的项目 CMakeLists.txt 构建 gtest 静态库?

转载 作者:太空狗 更新时间:2023-10-29 23:39:06 26 4
gpt4 key购买 nike

我有一个主项目和一个子项目测试。在 project/CMakeLists.txt 我添加了

add_subdirectory(tests)

project/tests/CMakeLists.txt 中,我插入“预编译”gtest 库(来自 Ubuntu 存储库)。我cd 到/usr/src/gtest 并将两个*.a 文件编译到系统lib 目录中。它工作正常,直到问题记录在 google test FAQ 中出现了。

如何从 project/tests/CMakeLists.txt 构建 gtest 静态库文件以及如何使用这个新的 *.a 文件而不是系统文件?

最佳答案

最后我找到了如何在不将 googletest 添加为子项目的情况下重建静态 libgtest.a

使用来自 this 的信息链接并从 this 的底部开始链接。

我的项目/tests/CMakeLists.txt 中有趣的部分:

.....
# Locate GTest
#find_package(GTest REQUIRED)
#include_directories(SYSTEM ${GTEST_INCLUDE_DIRS})
set(GTEST_SRC /usr/src/gtest/src/gtest-all.cc)
include_directories(SYSTEM /usr/src/gtest # <-- path to non-header files from gtest-all.cc
/usr/include) # <-- path to gtest headers

add_library(gtest STATIC ${GTEST_SRC}) # <-- make static library target before main project executable
target_link_libraries(gtest ${CMAKE_THREAD_LIBS_INIT})

# Link runTests with what we want to test and the GTest and pthread library
add_executable(tests ${SRC})
target_link_libraries(tests ${Boost_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT} gtest) # <-- finaly link this library as others

关于c++ - 如何从我的项目 CMakeLists.txt 构建 gtest 静态库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42241329/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com