我知道gcc做到了。但我想要一个可以这样做的C程序。该程序应该接受一个.c文件,并执行预处理操作并生成.i文件 供参考:这是一个项目,分配给他的大学我的亲属。从.c文件生成.i文件
回答
使用命令cc -E file.c -o file.i
这会给你预处理文件。欲了解更多信息,请参阅man页面。
只需再次阅读您的问题。你想编写程序,创建该文件。 那么你必须为此做很多工作。首先,你需要阅读#include
,#define
和条件包含(#if, #elif #endif
),然后你需要检测< >
和" "
,阅读这些符号中的文件。那么你必须fopen()
这些文件并将其粘贴到.i文件中。
总结起来,这将是很多工作,但这是做到这一点。
编辑它不只是复制过去。读取头文件意味着#include里面现在说你的头文件是abc.h,那么你必须搜索可以存在.h文件的所有预定义位置。如果发现你需要fopen()该文件读取它的内容并将其写入你的.c文件。另外你必须照顾宏指令和条件包含。相信我,我已经尝试过了,它的很多工作。但你可以尝试它会提高你的基本
是的。我想编写程序..读取头文件?意味着我需要将所有从头文件粘贴到.i文件中? – user2940249
**供参考:这是一个项目,分配给我的亲属在他的大学。**教授可能已经给了一些条件来做这个项目。 –
我不知道任何条件。谢谢你的帮助。这澄清了几乎一切。 – user2940249
如果你不能使用外部程序,如gcc,你必须自己实现C预处理器。整个预处理器在C Programming Language specification的“预处理指令”一节中有描述。或者,如果你不能使用其他程序,但你不想自己实现它,你可以尝试使用libclang作为一个库(尽管如此,你需要C++)。
- 1. I/O C++从文本文件阅读
- 2. 从生成文件
- 3. 从文件生成
- 4. 从C++头文件生成Java接口
- 5. 从WSDL文件生成C#.net类
- 6. 从头自动生成C++文件?
- 7. 如何从C-hexvalues生成文件?
- 8. 从excel文件生成mxml文件
- 9. 从目标文件生成头文件
- 10. 从xml文件生成html文件
- 11. 从Excel文件生成.rdl文件
- 12. 从.h文件生成.cpp源文件
- 13. xgettext从html文件生成po文件
- 14. 从xml文件生成xls文件
- 15. CSV文件生成器C
- 16. C++生成文件错误
- 17. asp.net C#生成PDF文件
- 18. C++ gSOAP文件生成
- 19. 生成文件C++继承
- 20. 如何从头文件生成C依赖文件
- 21. 如何使用Axis2c从WSDL文件生成C文件
- 22. 如何使用C#从Word/Excel文件生成PDF文件?
- 23. 从多个.c文件生成多个.so和.o文件
- 24. 以任何方式从.c和.h文件生成JNI文件?
- 25. C++文件I/O函数
- 26. 卡住C文件I/O
- 27. 文件I/O管理C
- 28. C++文件I/O问题
- 29. C++中的文件I/O
- 30. 的I/C++文件的Ø
为什么?你想解决什么问题?为什么你不能简单地使用'gcc -E'?或者你想实现你自己的预处理器吗? –
GCC是一个C程序...所以... – StoryTeller
@StoryTeller不,这是一个(惊喜)C++程序。虽然旧版本是C. –