這是我的場景: 我在一個嵌入式Linux系統上工作並獲得用C++編寫的共享庫。除了libstdC++是必需的,這意味着額外的1M內存被佔用,它運行良好。我想將共享庫轉換爲C,以便保存1M內存。自定義Clang將C++代碼轉換爲C
我知道如何將C++代碼手動轉換爲C,但它會很無聊。所以我尋找解決方案,並得到一個類似的問題:Use Clang to convert C++ to C code。但是生成的代碼不可讀。我想獲得可維護的C源代碼來過時原始的C++代碼。
我是Clang的新手。我已經瞭解到Clang can be used to build a tool that processes code。我的問題是:
- 是否有可能使用鏗鏘實現我的目標?
- 如果可能,我該怎麼做?更具體地說,我如何使用Clang刪除由宏包裝的代碼塊作爲第一步?
C和C++是兩種不同的語言。在兩種語言之間進行翻譯並不容易,而且根本不容易自動化。你有沒有試過從googletranslate中獲取可讀的東西? – user463035818
你有沒有第一次嘗試1.'-Os' 2. rewritting C++代碼編譯擺脫儘可能多的模板越好(這裏當然是空間/速度的權衡)3.靜態鏈接的一切嗎?如果沒有,首先嚐試將代碼自動轉換爲C將不起作用。 – Paladin
其實,你不需要'libstdC++',因爲它是C++。你可以用'gcc'而不是'g ++'鏈接你的C++程序,而不是鏈接'libstdC++'。你必須刪除所有對'std',異常,RTTI等的引用,但是你已經願意這麼做...... – rodrigo