【问题标题】:Auto-generating C++ code in a pre-build event using Visual Studio使用 Visual Studio 在预构建事件中自动生成 C++ 代码
【发布时间】:2010-02-11 16:59:15
【问题描述】:

我正在尝试使用 Visual Studio(具体来说是 VS 2005)中的预构建事件来运行 Python 脚本,该脚本将自动生成一个 .cpp 文件。我遇到的麻烦是编译器似乎不知道这个文件是脏的,需要重建,直到构建完成之后之后,这意味着我需要构建解决方案两次 -- 一次生成这个文件,然后再一次生成这个文件。

在不了解 C++ 编译器的内部工作原理的情况下,我天真的猜测是它列出了在预构建事件运行之前需要重新编译的脏文件列表,因此它错过了这个自动生成的文件,因为它直到预构建事件之后才被触及。

如果预构建事件改变了它,有什么方法可以通知编译器需要重新编译这个文件?

【问题讨论】:

  • 我也遇到过这个问题,一直没能解决。作为预构建事件的一部分,我尝试将日期设置为过去,我尝试在其他文件上设置日期并删除已编译的目标文件等,似乎没有任何效果。
  • 我想出的只是让预构建可执行文件检测到它已经改变了一些东西。请参阅我的这个相关问题:stackoverflow.com/questions/528494/…
  • 实际上我所指的可执行文件用于自定义构建规则

标签: c++ visual-studio compiler-construction prebuild pre-build-event


【解决方案1】:

我使用 msvc 6。

试试……

Put the python script into the project
give it a custom build step that invokes python on it,
to create the cpp file.

Add the cpp file to your project and do a rebuild all.

这就是我们使用 Oracle Pro*C 预处理器的方式。 它工作正常。

【讨论】:

  • 我在 VS2008 中使用 T4 变换做了类似的事情,效果很好。
【解决方案2】:

这不是我做过的事情,但您可以尝试直接从您的预构建事件中调用编译器 (cl.exe)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-11
    • 1970-01-01
    • 1970-01-01
    • 2020-06-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多