Tim*_*ing 24 c c++ embedded cross-platform
我目前正在管理从单个源代码树(Win32,Linux,Verifone CC终端,MBED甚至Nintendo GBA/DS)在多个平台上运行的一些C++代码.但是,我需要构建一个针对没有C++编译器(仅限C)的嵌入式平台的应用程序.我重申许多早期的C++编译器只是在现有C编译器(例如Glockenspiel使用MSC)上的前端.是否有任何今天使用的"前端"C++编译器将生成C代码.
Tools Platform
----------- ------------
______Visual C++ _____ WIN32
/
/_______MBED (ARM)_______MBED (ARM dev board).
/
/_________GCC (x86)________Linux
/
Source____/___________GCC (ARM)________GBA/DS
\
\__________SDA______________Verifone Verix CC Terminals
\
\________ARM SDT__________Verifine VerixV CC terminals
\
\______????_____________Renases M8/16/32.
\
\____????_____________Z8 family.
Run Code Online (Sandbox Code Playgroud)
最后两个平台我有很好的C编译器,但没有C++.
正如您所看到的,我支持各种各样的平台,并且我共享大量的库代码(以及一些应用程序代码).
Jay*_*rod 41
如果使用LLVM,llvm-g++则将C++代码编译为LLVM bitcode,并llc具有将bitcode转换为C的后端.
你可以写这样的命令:
llvm-g++ -emit-llvm -c foo.cpp -o foo.o
llc -march=c <foo.o >foo.c
Run Code Online (Sandbox Code Playgroud)
Mic*_*urr 18
Comeau C++就是这么做的.
小智 5
无法使用Z8,但瑞萨M16C/M32C系列目前有GCC - 请参阅http://www.kpitgnutools.com/,了解在Windows上托管的预建交叉工具链.我自己还没有使用它,但可能是比第三方C++前端更好的选择,特别是因为你的代码已经在其他平台上面向GCC.