Visual Studio中的复杂构建

Ale*_*x B 7 c c++ windows build visual-studio

我有一些我无法找到在Visual Studio中执行的好方法:

  1. 预构建步骤调用代码生成器,该代码生成器生成稍后编译的一些源文件.这可以通过向项目添加空白文件(稍后用实际生成的文件替换)在有限的范围内解决,但如果我不知道名称和/或自动生成的源文件的数量,它就不起作用.我可以在GNU make使用中轻松解决它$(wildcard generated/*.c).如何使用Visual Studio执行类似操作?

  2. 如果不需要修改文件("make"行为),我可以阻止预构建/后构建事件运行吗?目前的解决方法是编写一个包装器脚本,它将检查我的时间戳,这有效,但有点笨拙.

  3. 找到VS外部安装的外部库和头文件的好方法是什么?在*nix的情况下,它们通常会安装在系统路径中,或者位于系统路径中autoconf.我想我可以在项目设置中使用用户定义的宏指定路径,但是放置这些宏的好地方在哪里可以轻松找到并调整它们?

为了清楚起见,我知道存在更好的Windows构建系统(CMake,SCons),但它们通常自己生成VS项目文件,我需要将这个项目集成到现有的VS构建系统中,所以我希望我只是简单的VS项目文件,而不是生成的文件.

Epu*_*Epu 5

  1. 如果您需要make行为并习惯它,您可以创建visual studio makefile项目并将它们包含在项目中.

  2. 如果你想要更少的笨重,你可以编写visual studio 和自定义构建事件,并将它们绑定到特定的构建回调/钩子.

  3. 您可以尝试使用workspacewhiz之类的东西,它可以让您以可以检入的文件格式为项目设置环境变量.然后用户可以在本地更改它们.