visual msvsc++,如何用*编译已经预处理过的文件.我扩展

visual MSVS C++, how to compile already-preprocessed file with *.i extension?

本文关键字:预处理 文件 扩展 msvsc++ 何用 编译 visual      更新时间:2023-10-16

相关问题:如何分两个步骤运行MSVC预处理器和编译器?

我显式地将MyFile.cpp(而不是编译)预处理为MyFile.i。我想稍后"编译"该文件(显式跳过预处理会很好,但正如相关问题所暗示的那样,听起来这对于MSVS是不可能的。)

问题:MyFile.i是一个"无法识别的扩展名",cl.exe假设它是一个"目标文件",导致"无操作"。(参见微软警告:http://msdn.microsoft.com/en-us/library/zfsbakc5(v=VS.90).aspx,此警告对msvs2005, 2008, 2010有效)。

我找不到一个开关来声明它是一个"源文件"(而不是一个目标文件)。相关问题明确使用了"MyFile_preprocessed.cpp"约定,但我真的更愿意使用(更通用的)MyFile.i约定。

问题:是否有一个标志,我可以用MSVS编译MyFile.i ?

cl.exe有这两个标志

  • /Tc<source file>编译文件为。c

  • /Tp<source file>编译文件为。cpp

允许您将具有任意扩展名的文件编译为cc++文件

我尝试编译main.i与以下内容

#include <iostream>
using namespace std;
int main()
{
    cout << "Hello world n";
    return 0;
}

cl /Tp main.i,它的工作原理与广告