【发布时间】:2016-11-04 17:05:18
【问题描述】:
我想使用 Google C++ 测试,我完全是 cmake 和 gtest 的初学者。
我有一个名为 Filter 的类,它使用一个名为 jane 的 3d 派对库。
对于这种情况,我有一个 cmakeFile,它可以很好地构建我的项目,如下所示:
cmake_minimum_required(VERSION 3.1.2)
project(Filter)
include(../../../cmake/CMakeMacros.txt)
set_variables()
#add 3rdparty libraries
add_jane()
#add framework libraries
add_framework_libs(
ip/Image
)
include_directories(
../include
${FW_INCLUDE_DIRS}
)
#set project's source and include files
set(INCS
../include/${PROJECT_NAME}.h
../include/${PROJECT_NAME}.tpp
../include/FilterMask.h
)
set(SRCS
../src/${PROJECT_NAME}.cpp
../src/FilterMask.cpp
)
#set link directories
link_directories(
${FW_LIBRARY_DIRS}
)
#build project as static library (*.lib)
add_library(${PROJECT_NAME} STATIC
${INCS}
${SRCS}
)
#link libraries against project
target_link_libraries( ${PROJECT_NAME}
${FW_LIBRARIES}
)
#if a test executable should be build
if(Test_BUILD_EXAMPLES)
#build test executable
add_executable(${PROJECT_NAME}Test
../src/main.cpp
)
#link library against executable
target_link_libraries(${PROJECT_NAME}Test
${PROJECT_NAME}
)
endif(Test_BUILD_EXAMPLES)
而且我已经阅读了这个关于https://github.com/snikulov/google-test-examples 的简单教程和这个cmake 文件https://github.com/snikulov/google-test-examples/blob/master/CMakeLists.txt 并尝试再次构建我的项目以将这些cmake 文件组合在一起(可能以非常愚蠢的方式)但我无法实现它,因为天。
问题是,当我想用一个头文件测试一个简单的项目时,我可以使用这个 cmake 文件,但是当我尝试测试包含 3rd 方库的项目时,我会遇到不同的错误。
谁能告诉我如何编辑正确的 cmake 文件以使用 cmake 文件通过 googleTest 测试我的项目!?
【问题讨论】:
-
您可能需要查看this answer 以了解将 gtest 引入您的构建的替代方法,而不是该教程中的方法。回答链接到的文章在 github 上也有一个相关项目,其中包含一个完整的工作示例。至于你的链接问题,如果你展示了你得到的实际错误,那将允许对你的潜在问题进行更具体的诊断。您的项目似乎正在从项目外部的目录中提取其所有源等,这也很奇怪。
标签: c++ cmake googletest