【问题标题】:How does file inclusion work on pebble?文件包含如何在 pebble 上工作?
【发布时间】:2014-01-28 09:31:30
【问题描述】:

我发现 this very helpful example 关于 MenuLayers,它运行良好。在this line 中说该方法是在另一个文件中定义的。

showDetail(cell_index); // Defined in detailView.c

当我编译和运行时,一切都被正确调用了。但我想知道编译器如何知道何时包含此文件?

我看不到包含指令,所以我的想法是自动包含 src/ 文件夹中的所有文件。但如果是这样,按什么顺序?

【问题讨论】:

  • 这与 compiler 或预处理器(处理 #include 指令)无关,它是 linker 执行“魔术” ":编译器在目标文件中写入特殊数据,说名称showDetail是一个外部符号,然后当链接器获取所有源文件时,它会在其他目标文件中查找符号showDetail并写入正确的输出到可执行文件。
  • 这几乎回答了我的问题。也许您可以将其发布为答案?

标签: c pebble-watch


【解决方案1】:

Pebble SDK 使用waf 作为其构建工具。在wscript文件中配置。

如果您查看 Pebble 项目的 wscript 文件,您将看到以下几行:

def build(ctx):
    ctx.load('pebble_sdk')

    ctx.pbl_program(source=ctx.path.ant_glob('src/**/*.c'),
                    target='pebble-app.elf')

这告诉编译器编译并链接src/ 及其所有子目录中的所有“.c”文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多