我有一个项目,目标可能是某种类型的嵌入式系统,编译器可能是C89或等效的。不过,我想使用GNU的GCC扩展。
有没有办法让GCC编译成C89?也许是一些组装/拆卸过程?
发布于 2016-01-15 09:24:40
不幸的是,编译成C89与gcc的扩展不一样。事实上,它们是相互排斥的。
您需要确定您想要哪个项目,然后看看gcc的-std=c89 (可能还有-pedantic)选项,如果您真的想坚持C89的话。如果您想要GNU扩展,请看gcc文档,对于-std=参数有一组相当广泛的选项。
也有一些gcc交叉编译器存在,看看这些,看看它们是否适合您的嵌入式目标平台,您可能有一个更容易的路径可用。
发布于 2016-01-15 09:20:16
我不知道GCC 5和更高版本,但在默认情况下,实际上是带有GNU扩展的C89。
如果您想要显式地使用-std标志,比如-std=gnu89。
请参阅在线手册中的控制C方言的选项。
如果您想使用GNU扩展,那么您必须使用一个真正支持它们的编译器,比如GCC。如果不想使用GNU扩展,那么可以使用任何兼容的编译器。
还请注意GCC是非常便携的。虽然后期版本可能不支持您的目标平台,但可能会有更早的版本支持。
https://stackoverflow.com/questions/34807779
复制相似问题