在多台计算机上工作时,在VC ++中包含目录

时间:2011-11-29 10:37:18

标签: visual-studio-2010 visual-c++

在Visual Studio 2010中,如何设置VC ++导入目录以便从多台计算机构建项目?例如,我的项目需要使用一个图形库,该图形库安装在我正在使用的两台机器上,但位于不同的路径上。

我想答案是某种宏,但我是Visual Studio的新手,所以我不确定我的直觉是否正确。

我正在从Matlab环境过渡,您可以在其中直接为每台机器设置路径,而不是每个项目。 Visual Studio是否具有此类功能,或者是项目属性级别的所有内容?

2 个答案:

答案 0 :(得分:2)

您确实可以使用宏来设置每台计算机的include和lib目录。

如果您的项目目录中有文件,则可以使用:

$(SolutionDir)\这将指向解决方案目录根目录的完整路径

$(ProjectDir)\这将指向项目目录根目录的完整路径。

您可以将图形库放在项目目录中,并指向它:

例如,

$(ProjectDir)\graphicslib或您希望将其放入解决方案的任何其他地方。

更多信息位于http://msdn.microsoft.com/en-us/library/c02as0cs.aspx

答案 1 :(得分:1)

使用属性表的层次结构,或使用像CMake这样的工具为您生成项目文件(因为它应该自动找到所有的libs / includes)。

对于属性表:为每个项目添加相同的属性表。使用该属性表,包括具有预定义名称的其他属性表。然后,在您工作的每台计算机上,您将必须提供那些“每台机器”的属性表。例如:

main.vsprops       -> include by every project
|- matlab.vsprops  -> sets the lib/includes for matlab runtime
|- opengl.vsprops  -> sets the lib/include for opengl

现在,在您的版本控制系统中,您为matlab.vsprops和opengl.vsprops提供了一个默认值,其中包含合适的dfeault值和一个批处理文件来创建它们。这样您就可以从VCS签出,运行单个文件,编辑vsprops并开始编码而不会有太多麻烦。例如:

main.vsprops       -> versioned
matlab.vsprops.def -> versioned, contains defaults
opengl.vsprops.def -> versioned, contains defaults
create_vsprops.bat -> versioned, copies *.vsprops.def to *.vsprops