【问题标题】:Combining C-code files into one C-code file将 C 代码文件合并为一个 C 代码文件
【发布时间】:2012-04-03 09:17:08
【问题描述】:

我正在将 libx264 转换为 renderscript 作为一个练习,以了解将更大的项目移植到 renderscript 需要多少工作。 renderscript 的痛点之一是所有东西都需要声明为静态才能自动获取 java 接口。此外,这个自动 java 接口不能处理指针、多维数组等。因此我需要在 libx264 中将所有函数和全局变量声明为静态,除了一些调用函数来控制它。

然后我的问题是,由于所有内容都被声明为静态,因此我需要将所有代码都放在一个文件范围内。我开始只是将所有 C 代码文件包含在一个文件中并进行编译。如果不是 libx264 本身也包含具有不同预处理宏定义的 C 文件,这将很容易工作,因此一些函数存在两次,内容不同,而一些函数被重新声明为相同。我当然可以手动处理这个,但使用工具会更容易。

我在问是否有人知道一种工具,它可以获取 C 项目并将其预处理/合并到一个 C 文件中,管理重新声明、冲突声明等。

而且我认为堆分​​配将是一个难题......

【问题讨论】:

  • “那么我的问题是,由于所有内容都被声明为静态” - 无论如何,renderscript 仅支持每个脚本的单个 C 文件 - 无法直接将多个文件链接在一起。虽然您可以通过 rsForEach 调用另一个脚本。
  • 是的,谢谢,我发现在发布之后,我没有先测试这个,因为它支持 .rsh 文件,并且我认为它允许函数声明作为内置的 .rsh 文件。但是我仍然需要一个工具来正确地将所有 c 文件合并到一个文件中。从那时起,这将是将通用 c 项目转换为渲染脚本的唯一方法。

标签: android c c-preprocessor renderscript


【解决方案1】:

我找到了一个可以做到这一点的工具,CIL。 http://sourceforge.net/projects/cil http://kerneis.github.com/cil/doc/html/cil/merger.html

/哈拉尔

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-03
    • 1970-01-01
    • 2016-12-09
    • 2014-01-04
    相关资源
    最近更新 更多