这是我的场景: 我在一个嵌入式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