此处的相关问题: How can I run the MSVC preprocessor and compiler in two separate steps?
我明确地预处理MyFile.cpp
(不编译)到MyFile.i
。我想稍后“编译”该文件(显式跳过预处理会很好,但正如相关问题所示,听起来这对于MSVS来说是不可能的。)
问题:MyFile.i
是“无法识别的扩展名”,cl.exe
假定它是“目标文件”,导致“无操作”。 (请参阅Microsoft警告:http://msdn.microsoft.com/en-us/library/zfsbakc5(v=VS.90).aspx,此警告对MSVS 2005,2008,2010有效。)
我找不到一个开关来声明它是一个“源文件”(不是目标文件)。相关问题明确使用了“MyFile_preprocessed.cpp
”约定,但我真的更喜欢使用(更通用的)MyFile.i
约定。
问题:我是否可以使用MSVS编译MyFile.i
?
答案 0 :(得分:5)
cl.exe
有这两个标志
/Tc<source file>
将文件编译为.c
/Tp<source file>
将文件编译为.cpp
允许您将任意扩展名的文件编译为 c 或 c ++ 文件
我尝试使用以下内容编译main.i
#include <iostream>
using namespace std;
int main()
{
cout << "Hello world \n";
return 0;
}
使用cl /Tp main.i
,它的工作方式为广告