【发布时间】:2015-06-26 08:56:26
【问题描述】:
我正在使用 C 语言开发一个小型开源项目,我正在尝试使用带有 C 的测试框架(框架是 min_unit)。
我有一个带有原型的foo.h 文件和带有实现的foo.c。
在我的测试文件中,tests.c,我有
#include "../test_framework/min_unit.h"
#include "foo.c"
... test cases ...
问题是,因为我在foo.c 中有一个main() 函数(我需要编译它),所以我无法编译tests.c,因为我收到一个错误提示
note: previous definition of ‘main’ was here
int main() {
我的问题是,有没有办法让foo.c 中的main() 函数是有条件的,以便在我运行tests.c 时它不会编译?一遍又一遍地删除和添加 main 很烦人。
【问题讨论】:
-
不要包含源文件,而是声明你需要的函数。
-
有几个称为“minunit”的框架,因此有助于了解哪一个。对于我发现的两个,都没有定义自己的“main()”函数。
-
考虑使用
make或cmake。 -
@JoachimPileborg 你的意思是把我需要的来自
foo.c的函数声明放在tests.c的顶部附近吗? -
@Joe 我没有意识到这一点,我很抱歉。我使用的 minunit 框架是这个:jera.com/techinfo/jtns/jtn002.html
标签: c testing compilation main