【问题标题】:Build generated cpp in visual studio在 Visual Studio 中构建生成的 cpp
【发布时间】:2021-06-30 05:55:22
【问题描述】:

我正在将 Visual Studio 2019 用于 C++ 项目。在这个项目中,我在构建(预构建事件)时生成一个 cpp 文件,如果需要,修改 .vcxproj 以将文件添加到项目中。当文件已经存在并因此仅被覆盖时,它可以完美运行。

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

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

【问题讨论】:

  • 你试过 CMake 吗?
  • @prehistoricpenguin 如果可能,我想使用默认编译器。
  • CMake 是一个构建工具,对您的案例非常有帮助,请参见:stackoverflow.com/questions/20824194/…
  • @prehistoricpenguin 我知道 CMake 是什么,但我想使用尽可能少的工具。无论如何,感谢您的建议,如果我没有找到另一种方法,我很可能会使用它:)
  • 我和 prehistoricpenguin 一起讨论 CMake,但作为一种解决方法,我建议您的用例始终生成源文件,但如果您不打算使用,请将其留空它。

标签: c++ compilation visual-studio-2019


【解决方案1】:

我实际上找到了解决方案!您需要创建一个 MakeFile 项目,该项目将调用您制作的 .bat,而不是创建控制台项目。在这个 .bat 中,您必须调用一个 .exe,它将创建 Visual Studio 文件(.vcxproj、.sln 等...),生成 cpp 文件(并执行我想要的所有预构建事件,基本上)然后调用编译器和链接器(使用正确的参数,取决于平台、32/64 位、发布/调试等...)。这样您就可以控制编译的内容以及围绕它执行的操作(例如,我需要始终执行的构建后事件,即使构建失败,您在基本控制台项目中也无法做到这一点)

【讨论】:

    猜你喜欢
    • 2011-11-14
    • 2013-07-02
    • 2013-02-21
    • 1970-01-01
    • 2017-08-27
    • 1970-01-01
    • 2012-01-25
    • 2020-09-01
    • 1970-01-01
    相关资源
    最近更新 更多