如何在Visual Studio 2010中设置相对包含路径?

3

我写了一个叫做 MyLib 的库,并在 MyLib\Samples\ 中放置了一些 Visual Studio 项目,包含文件在 MyLib\inc 文件夹中。为了让这些包含文件在项目中可用,我需要在项目属性中添加它们的路径。

我想使用相对路径,这样我就不需要每次移动整个库文件夹时都更改属性。但是相对路径看起来是什么样子的呢?例如,其中一个项目路径是:...\MyLib\Samples\proj1,那么如何表示 ...\MyLib\inc 相对于项目路径的位置呢?


1
这可能已经过时了,但是您可以创建一个.bat文件来定义映射的subst命令。例如,S:\ Sources映射到给定系统上的文件夹C:\ xxx \ xxx \ Sources文件夹。不确定它是否适用于您的解决方案。但是,所有引用都可以使用s:\ Sources而不考虑环境。 - Ross Bush
是的,这是构建系统的基本功能,但 MSVS 似乎没有一个好的方法。我希望有人能找到这个问题并给我们一个合理的答案! - Peter M
2个回答

9

使用$(SolutionDir)或者$(ProjectDir)的MSBuild属性来设置路径。这些属性在构建时会被替换为解决方案和项目所在的目录。


这对于问题并不起作用(就我理解而言)。使用情况是当项目使用库时,您希望库的客户端继承包含路径。$(SolutionDir)和$(ProjectDir)将是相对于库的客户端而不是库的路径。 - Peter M
最佳实践是不要在这种情况下使用相对路径。我曾经与过去使用相对路径的代码库一起工作,后来将相对路径项目导出为外部使用的库引入后,造成了绝对的混乱 - 洪水般的额外包含属性需要适应每个项目的$(ProjectDir)字段。不好。 - lukemtesta
找了这么久,原来如此简单! - JonV

1
你需要的是项目中的自定义属性
Visual Studio支持定义自定义属性,您随后可以在包含路径中使用宏扩展。
这是一个示例,看起来像这样: enter image description here

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接