gpt4 book ai didi

CMock - 多重定义

转载 作者:太空宇宙 更新时间:2023-11-04 08:09:49 25 4
gpt4 key购买 nike

我开始从事测试驱动的 C 语言开发。

我使用 CMock 通过运行以下命令来生成我的模拟类:

ruby cmock.rb ../../../src/util.h

我当前的包结构是:

app/root
| bin
| *.*
| build
| *.*
|- cmake
|- modules
|- CodeCoverage.cmake
|- coverage
|- *.*
|- external
|- Unity
|- CMock
|- CMakeLists.txt
|- src
|- *.c
|- *.h
|- CMakeLists.txt
|- mocks
|- *.c
|- *.h
|- CMakeLists.txt
|- tests
|- *.c
|- *.h
|- CMakeLists.txt
|- CMakeLists.txt

我有 CMakeLists.txt 设置来将 src 编译为一个库:

add_library(app SHARED ${SOURCE_FILES})

测试设置为编译为可执行文件:

add_executable(tests ${TEST_SOURCES})

target_link_libraries(tests app Unity mocks)

并且 mocks 被设置为编译为一个库:

add_library(mocks ${MOCK_SOURCES})

target_link_libraries(mocks app Unity CMock)

我已经为模拟 header 尝试了多个位置并且一直在尝试,但是我缺少如何避免出现多个定义 错误的基础知识。

任何人都可以就我的文件结构或策略的不正确之处提供一些指导吗?

最佳答案

在这里查看答案:https://github.com/ThrowTheSwitch/CMock/issues/97

基本上,这一切都归结为仅链接每个测试所需的文件。使用 Unity 时,每个测试都变成了自己的可执行文件。

关于CMock - 多重定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40270089/

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