gpt4 book ai didi

多个测试文件的CMake配置

转载 作者:太空宇宙 更新时间:2023-11-03 23:39:47 24 4
gpt4 key购买 nike

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

duplicate symbol _main in:

CMakeFiles/Tests.dir/test.c.o

CMakeFiles/Tests.dir/test2.c.o

根 CMakeLists.txt

cmake_minimum_required(VERSION 3.9)
project(Polymorphism)

set(CMAKE_C_STANDARD 99)

add_subdirectory(src)
add_subdirectory(test)

src/CMakeLists.txt

add_library(Polymorphism person.c employee.c)
target_include_directories(Polymorphism PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})

测试/CMakeLists.txt

add_executable(Tests test.c test2.c)
target_link_libraries(Tests Polymorphism)

测试/测试.c

void main() {
// some tests
}

test/test2.c

void main() {
// some tests
}

最佳答案

这其实很容易解决。 CMake 允许您创建多个可执行文件(这些可以有自己的主要功能)并且还包含一个功能 add_test用于将这些绑定(bind)到测试。

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

add_executable(test1 test.c)
add_executable(test2 test2.c)

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

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

关于多个测试文件的CMake配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48995697/

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