我正在将 libx264 转换为 renderscript,作为一个练习,将一个更大的项目移植到 renderscript 中需要做多少工作。renderscript 的痛点之一是所有东西都需要声明为静态才能自动获取 java 接口。此外,这个自动 java 接口不能处理指针、多维数组等。因此,除了一些调用函数来控制它之外,我需要在 libx264 中将所有函数和全局变量声明为静态。
然后我的问题是,由于所有内容都被声明为静态,因此我需要将所有代码都放在一个文件范围内。我开始将所有 C 代码文件包含在一个文件中并进行编译。如果不是 libx264 本身也包含具有不同预处理宏定义的 C 文件,这将很容易工作,因此一些函数存在两次,内容不同,而一些函数被重新声明为相同。我当然可以手动处理这个,但使用工具会更容易。
我在问是否有人知道一种可以将C项目和预处理/合并到一个 C 文件中、管理重新声明、冲突声明等的工具。
而且我认为堆分配将是一个难题......