这是任何 C/C++ 项目在 Visual Studio 2019 中的最终预期结果:
我正在寻找的关键部分是此 MSVC 项目属性对话框中的前 2 行:
- “输出目录”:
$(Configuration)-$(PlatformArchitecture)\
- “中间目录”:
$(Configuration)-$(PlatformArchitecture)\$(ProjectName)\
如您所见,两者都使用 Visual Studio$(xyz)
宏来定义目标路径。
我一直在努力解决的问题:
如何让 CMake 将这些字符串而不是已经扩展的路径吐出到生成的 vcxproj 文件中?
如果我希望这发生在多个(或所有)生成的 MSVC C/C++ 项目文件(库、可执行文件等)上,那么我应该在哪里设置呢?我是否需要修补模板文件,或者可以通过命令行或配置文件设置来完成,然后覆盖内部定义的
CMakeLists.txt
值?如果我想要对所有vcxproj 构建目标进行此设置,如屏幕截图所示,我需要注意/注意什么特别之处?
(在我的情况下,这通常是 x86 和 x64 的 Debug+Release,所以Visual Studio中有 2 个配置和 2 个平台)
关于 SO 的其他问题(至少是我挖出的问题)根本没有解决这个问题,因为它们使用 CMake 将一个“硬编码”路径替换为另一个(仅使用不同的 CMake 变量,但在 vcxproj 之前都扩展为绝对路径)产生)。