我将libx264转换为renderscript,作为将一个较大的项目移植到renderscript中的工作量。与renderscript的痛苦之一是,一切都需要被声明为静态的,不会自动获得Java界面。此外,这个自动的java接口不能处理指针,多暗数组等。因此,我需要在libx264中声明所有函数和全局变量为静态,除了一些调用函数来控制它。将C代码文件合并为一个C代码文件
我的问题是,因为一切都被宣布为静态我需要在一个文件范围内的所有代码。我开始将所有的C代码文件都包含进去并编译。如果不是libx264本身也包含了具有不同预处理宏定义的C文件,那么这将非常轻松地工作,因此某些函数会以不同内容存在两次,并且某些函数被重新声明为相同。我当然可以手动处理,但使用工具会更容易。
我问,如果有人知道一个工具,可以采取ç项目和预处理/归并成一个C-文件,管理再声明,冲突的声明等
和我认为堆分配将是困难的问题...
“那么我的问题是,由于一切都声明为static” - 的renderScript仅支持无论如何,每个脚本都有一个单独的C文件 - 没有办法直接将多个文件链接在一起。虽然你可以通过rsForEach调用另一个脚本。 – JesusFreke 2012-04-03 15:10:15
是的,谢谢,我发现在发布之后,我没有首先测试,因为支持.rsh文件,我认为它允许函数声明作为内置.rsh文件。但是我仍然需要一个工具来将所有的c文件合并到一个文件中。从那以后,这将是将一般c项目转换为renderscript的唯一方法。 – 2012-04-03 15:44:09