[英]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)
並將模擬程序設置為可編譯為庫:
add_library(mocks ${MOCK_SOURCES})
target_link_libraries(mocks app Unity CMock)
我已經為模擬標頭嘗試了多個位置,並且一直在玩耍,但是我缺少如何避免出現多個定義錯誤的基本知識。
任何人都可以就我的文件結構或策略的不正確之處提供一些指導嗎?
在這里查看答案: https : //github.com/ThrowTheSwitch/CMock/issues/97
基本上,所有這些都歸結為僅鏈接每個測試所需的文件。 使用Unity時,每個測試都會變成其自己的可執行文件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.