CMock - 多重定义
CMock - Multiple definitions
我开始从事测试驱动的 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)
我已经为模拟 headers 尝试了多个位置并且一直在玩,但我缺少如何不获得 多个定义 的基础知识错误。
任何人都可以就我的文件结构或策略的不正确之处提供一些指导吗?
在这里查看答案:https://github.com/ThrowTheSwitch/CMock/issues/97
基本上,这一切都归结为仅链接每个测试所需的文件。使用 Unity 时,每个测试都变成了自己的可执行文件。
我开始从事测试驱动的 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)
我已经为模拟 headers 尝试了多个位置并且一直在玩,但我缺少如何不获得 多个定义 的基础知识错误。
任何人都可以就我的文件结构或策略的不正确之处提供一些指导吗?
在这里查看答案:https://github.com/ThrowTheSwitch/CMock/issues/97
基本上,这一切都归结为仅链接每个测试所需的文件。使用 Unity 时,每个测试都变成了自己的可执行文件。