c++ - 在 VC++ 2010 中使用 MSBuild 对文件进行自定义预处理

标签 c++ visual-studio-2010 msbuild c-preprocessor

我试图在常规预处理器完成后将自定义预处理器插入 VC++ 2010 构建管道,到目前为止,我认为这样做的方法是通过 MSBuild。

到目前为止,我无法找到更多信息,所以我的问题是:

  • 这可能吗?
  • 如果是这样,我需要看什么才能开始。

最佳答案

如果您谈论的是 c/c++ 预处理器,那么您可能不太走运。 AFAIK,预处理器内置于编译器本身。您可以让编译器输出一个预处理文件,然后您可以再次通过编译器发送该文件以获得最终输出。

由于正在生成的代码,至少在以前版本的 cl.exe 中,这可能无法正常工作(至少在以前的 cl.exe 版本中,这似乎不是 100% 正确的(空白会稍微损坏,这可能会导致错误)。

如果您想走这条路,您需要做的是拥有一个在“ClCompile”目标之前运行的 MSBuild“目标”。 这个新目标必须运行带有“ClCompile”通常发送给它的所有设置的“cl.exe”程序,以及将“预处理到文件”的“/P”选项。 然后您需要在处理后的文件上运行您的工具,最后将这些新文件提供给“ClCompile”。

如果您需要任何更多信息,请在评论中回复,我会在有空时尝试添加一些信息(这个问题相当陈旧,所以我不确定是否值得在这个答案上投入更多时间) .

关于c++ - 在 VC++ 2010 中使用 MSBuild 对文件进行自定义预处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5947116/

相关文章:

msbuild - 如何执行不覆盖现有文件的 MSBuild 复制命令?

C++如何将一行数据文件放入数组中进行加密? (AES)

c# - 从程序资源中检索图像

c++ - Visual Studio 调试器失败但程序在构建时运行正常...?

c++ - 使用Nsight调试导出DLL的非启动项目中的CUDA代码

c++ - 如何使自定义 MSBuild 目标的执行依赖于文件的时间戳?

msbuild - 在 MSBuild 中表达传递依赖,无需导入 PackageReference

c++11 绑定(bind)和应用?

c++ - 为什么 SSE 有 128 位加载功能?

c++ - 强名称 dll - 如何排除故障?