短:
如何在biicode中使用仅头的库?
中等:
当我试图构建一个块时,它包含示例目录,即使我试图在已发布blok的biicode.conf中显式设置依赖项。
长:
我正在尝试使用biicode启动并运行unity框架。
Uinty作为C的单元测试框架非常棒,因为您不需要编译任何库。如果你自己做模拟,你甚至不需要运行任何脚本,只有一个.c文件包含在你的编译,你是黄金。
我已经将git repo发布到我的biicode块paulbendixen/Unity中,因为除了应该包含的头文件附带的c文件之外,不需要任何编译步骤,所以没有其他事情可做。
但是,当我包含文件时,使用#include "paulbendixen/Unity/src/unity.h"会在执行biicpp:build时得到错误:

Code.c:2:28: fatal error: ProductionCode.h: No such file or directory
#include "ProductionCode.h"

这是在examples文件夹中,因此当我只想使用unittesting部分时,不应该编译它。将[依赖项]更改为包含unity.h = unity.c unity_internals.h也没有帮助。
我很确定这个问题应该在Unity/biicode.conf中解决,但是我还没有找到这个文件的完整描述。
Unity库的简单性应该使它成为构建系统(如bii)的理想选择,但设置起来似乎相当复杂。
如果有帮助,我使用了简单的布局和-r [github for throwtheswitch]选项
编辑:
添加了一个中等大小的块

最佳答案

不是那么简单。Unity使用rakefile来构建和运行测试,它们有很多配置。快速上传到biicode可以做的就是忽略测试,只发布文件。可以编写一个ignore.bii文件,其中包含以下内容:

docs/*
test/*
examples/*
*test*

对于biicode.conf,唯一需要的配置是include路径:
[paths]
    src
    extras/fixture/src

如果运行$ bii deps --files *unity.h
通过这些更改,可以发布它。没什么可建的。
然后,为了在其他项目中使用它,我已经能够构建简单的测试:
#include "unity.h"

void testTrue(void){
    TEST_ASSERT(1);
    TEST_ASSERT_TRUE(1);
}

int main() {
  testTrue();
}

只需在新项目的biicode.conf中添加以下内容:
[requirements]
    diego/unityfork: 0

[includes]
    unity.h: diego/unityfork/src

如果biicode使用更典型的CMake配置而不是rakefile,那么在运行和构建测试时不忽略它们可能会容易得多

关于c - 在biicode中使用仅 header 库,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29063903/

10-08 23:42