c++ - 在 visual studio 中包含相对于 props 文件的路径

标签 c++ visual-studio visual-c++ include-path

我正在尝试创建包含路径的属性文件,以便在我的所有 C++ 项目中使用。

这是存储库结构。

/
    /Libs
        /Libs2
            A.h
         B.h
    /Sln1
        Sln1.sln
        Proj1.vcxproj
    Sln2.sln
    Proj2.vcxproj
    Props.props

我想使用属性文件 (Props.props) 将以下包含路径添加到两个项目 (C:\\Libs;C:\\Libs\Libs2)。

目前我的属性文件中有宏:

Name          Value
ProjRoot      C:\<path to rep root>

我在包含字符串中使用它:$(ProjRoot)\Libs;$(ProjRoot)\Libs\Libs2

此解决方案的问题是宏值中的硬编码绝对路径。如果我的存储库将被克隆到另一个驱动器上,我将不得不手动更改它。

我可以在宏值中使用相对于属性文件的路径吗?

即:

Name          Value
ProjRoot      ./

其中 ./将解析为将使用此属性文件的所有项目中的 Props.props 文件的路径。

我不能使用 $(SolutionDir) 和 $(ProjectDir),因为在不同的嵌套级别中可能有解决方案和项目,因此相对于它们的路径将不起作用。

谢谢。

最佳答案

做这件事应该手动编辑 Prop 文件并包括以下内容:

<PropSheetPath>$([System.IO.Path]::GetFullPath('$(MSBuildThisFileDirectory)'))</PropSheetPath>

这将创建带有属性文件夹的属性 PropSheetPath

在这里找到答案:

https://social.msdn.microsoft.com/Forums/vstudio/en-US/2817cae7-3a71-4701-839a-9bf47af7c498/property-sheets-macro-to-reference-location-of-property-sheet?forum=vcgeneral

关于c++ - 在 visual studio 中包含相对于 props 文件的路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44386059/

相关文章:

c++ - 使用 C++ 将数据连接并插入到 MS Access 表中

c++ - 按值传递时 shared_ptr 如何增加计数器?

c++ - 如何绘制从 glReadPixels 捕获的屏幕截图到 wxWidgets 对话框/面板

c++ - 如何在不关闭预编译 header 的情况下修复 C1010 错误?

c++ - CreateWindow 函数不起作用。Visual Studio 2015

c++ - 使用 g++ 编译器编译时如何添加 mclmcrrt.lib 或 (.lib) 文件

c++ - 空引用如何导致代码为 0xc0000005 的 SEH 异常?

为 32 位和 64 位处理器强制对齐的 C++ 安全性

C++文件重命名最佳样式

.net - Visual Studio 是否支持编辑 Robots.txt?