Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/225.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 将C代码文件合并为一个C代码文件_Android_C_C Preprocessor_Renderscript - Fatal编程技术网

Android 将C代码文件合并为一个C代码文件

Android 将C代码文件合并为一个C代码文件,android,c,c-preprocessor,renderscript,Android,C,C Preprocessor,Renderscript,我正在将libx264转换为renderscript,以了解将稍大一点的项目移植到renderscript中需要做多少工作。renderscript的一个难题是,所有东西都需要声明为静态,这样就不会自动获得java接口。此外,这个自动java接口不能处理指针、多维数组等。因此,我需要在libx264中将所有函数和全局变量声明为静态,并使用一些调用函数来控制它 我的问题是,由于所有东西都声明为静态,所以我需要将所有代码都放在一个文件范围内。我开始把所有的C代码文件都包含在一个文件中并编译。如果不是

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


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

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


我认为堆分配将是一个困难的问题…

我找到了一个工具,CIL。 http://kerneis.github.com/cil/doc/html/cil/merger.html


/Harald

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