ここに私のシナリオがあります: 私は組み込みLinuxシステムで作業しており、C++で書かれた共有ライブラリを手に入れています。それは、libstdC++が必要であることを除けばうまく動作します。これは、余分な1Mメモリが占有されていることを意味します。私は1Mのメモリが保存されるようにCに共有ライブラリを変換したい。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を使用することは可能ですか?
- 可能であれば、どうすればいいですか?具体的には、最初のステップとしてマクロでラップされたコードブロックを削除するためにClangを使用するにはどうすればよいですか?
CとC++は2つの異なる言語です。 2つの言語間の翻訳は簡単ではなく、自動化するのは簡単ではありません。 googletranslateから読み込み可能なものを取得しようと試みたことがありますか? – user463035818
あなたは最初に '-Os'でコンパイルを試みましたか?2.できるだけ多くのテンプレートを取り除くためにC++コードを書き直しました(ここではもちろん空間/速度のトレードオフです)。そうでない場合は、まずコードをCに変換すると自動的に動作しません。 – Paladin
実際には 'libstdC++'はC++であるため、必要ありません。あなたのC++プログラムは、 'g ++'の代わりに 'gcc'にリンクし、' libstdC++ 'にはリンクしないでください。あなたは 'std'、例外、RTTIなどの全ての参照を削除しなければならないでしょうが、すでにそれを望んでいます... – rodrigo