在 visual studio 中构建生成的 cpp

Build generated cpp in visual studio

我正在为一个 C++ 项目使用 visual studio 2019。在这个项目中,我在构建(构建前事件)时生成一个 cpp 文件,如果需要,修改 .vcxproj 以便将该文件添加到项目中。当文件已经存在并且因此只是被覆盖时,它可以完美地工作。

但是,如果我想生成文件并在编译开始时添加它,它不会检测到该文件,我需要再次点击编译才能使其工作(因为它已经生成并在第一次编译时添加,即使它失败了)。在第一次编译结束时还有一个弹出窗口 window 告诉我一些文件已更改并询问我要做什么(reload/reload all/ignore/ignore 全部)。

有没有办法让它在第一次尝试时起作用?也许在其他任何事情之前设置自定义构建事件?或者有没有办法修改构建事件的执行顺序? (在其他任何事情之前设置预构建事件)

我真的找到了解决办法!您无需创建控制台项目,而是需要创建一个 MakeFile 项目,该项目将调用您创建的 .bat。在这个 .bat 中,你必须调用一个 .exe,它将创建 visual studio 文件(.vcxproj、.sln 等...),生成 cpp 文件(基本上做我想要的所有预构建事件)然后调用编译器和链接器(使用正确的参数,具体取决于平台、32/64 位、release/debug 等...)。这样你就可以控制你编译的内容和你围绕它做的事情(比如,我需要 post-build 事件总是执行,即使构建失败,你不能在基本的控制台项目中做)