首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多个测试文件的CMake配置

多个测试文件的CMake配置
EN

Stack Overflow用户
提问于 2018-02-26 19:25:31
回答 1查看 3K关注 0票数 3

我遇到了以下错误。基本上,我有两个测试.c文件,如何让它们独立运行?每个人都有自己的主要功能?

重复符号_main在: CMakeFiles/Tests.dir/test.c.o CMakeFiles/Tests.dir/test2.c.o

根CMakeLists.txt

代码语言:javascript
复制
cmake_minimum_required(VERSION 3.9)
project(Polymorphism)

set(CMAKE_C_STANDARD 99)

add_subdirectory(src)
add_subdirectory(test)

src/CMakeLists.txt

代码语言:javascript
复制
add_library(Polymorphism person.c employee.c)
target_include_directories(Polymorphism PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})

test/CMakeLists.txt

代码语言:javascript
复制
add_executable(Tests test.c test2.c)
target_link_libraries(Tests Polymorphism)

测试/test.c

代码语言:javascript
复制
void main() {
    // some tests
}

test/test2.c

代码语言:javascript
复制
void main() {
   // some tests
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-12 22:16:49

这其实是很容易解决的。CMake允许您创建多个可执行文件(它们可以有自己的主函数),还可以包含一个add_test函数,用于将这些可执行文件绑定到测试。

因此,假设您有test.ctest2.c文件,每个文件都有自己的主要功能:

代码语言:javascript
复制
add_executable(test1 test.c)
add_executable(test2 test2.c)

add_test(NAME t1 COMMAND test1)
add_test(NAME t2 COMMAND test2)

现在,您可以运行命令make testctest,它们将注册两个单独的测试并按此方式运行。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48995697

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档