我將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