gpt4 book ai didi

仅 C++ 前端编译器(将 C++ 转换为 C)

转载 作者:行者123 更新时间:2023-11-30 17:07:33 24 4
gpt4 key购买 nike

我目前正在管理一些从单一源代码树(Win32、Linux、Verifone CC 终端、MBED 甚至任天堂 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.

最后两个平台我有很好的 C 编译器,但没有 C++。

如您所见,我支持多种平台,并且共享大量库代码(以及一些应用程序代码)。

最佳答案

如果您使用LLVM , llvm-g++会将您的 C++ 代码编译为 LLVM 位代码,并且 llc有一个将位码转换为 C 的后端。

你可以这样编写命令:

llvm-g++ -emit-llvm -c foo.cpp -o foo.o
llc -march=c <foo.o >foo.c

关于仅 C++ 前端编译器(将 C++ 转换为 C),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34032459/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com