首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用VS编译器将预处理文件编译成目标文件

如何使用VS编译器将预处理文件编译成目标文件
EN

Stack Overflow用户
提问于 2019-06-05 20:17:46
回答 1查看 449关注 0票数 1

cl.exe (Visual Studio C/C++语言编译器)将源文件编译为带有/P标志的预处理文件,例如cl /P Source.c创建源文件

我想把这个Source.i (不是Source.c)编译成Source.obj。我怎么发动汽车呢?找不到将预处理文件作为输入的标志。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-05 20:34:10

你不需要做任何特别的事情。它是一个有效的C++源文件,直接发送到您的编译器。(尽管它不是可移植的源文件,因为工具链自己的标准库gubbins和其他任何东西都已经扩展了。)

这里唯一的技巧是,通常“中间”步骤是由前端为您完成的,获取预处理的源代码并将其传递给“真正的”编译器。但是你仍然可以自己去做。

但是,您可能希望将其重命名,使其具有类似于C++的良好扩展。否则,您可以传递/Tp来强制将您的文件视为C++,而不管扩展名是什么。(对于GCC来说,这就是-x c++。)

要注意的另一件事是,它仍然会在文件上运行预处理步骤,而不知道不再需要它(所有的preproc指令都已经在第一步中展开了),所以这会浪费一些额外的时间。但这不是(或不应该是)典型的工作流程。

代码语言:javascript
复制
cl /P Source.c
cl /Tp Source.i
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56460348

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档