Visual Studio中的脚本文件中定义的'$ OutDir'在哪里?

zar*_*zar 10 c++ visual-studio-2010 visual-studio visual-c++

Visual Studio在项目设置中使用了大量宏,这些宏列在此处.我无法找到实际脚本文件中定义的这些宏或标识符的位置(不在项目设置中).

在我的情况下,我试图将项目的输出文件夹更改为解决方案调试或发布文件夹(一级),但在项目设置中更改"输出目录"无效.

在.vcxproj文件中没有提到这些宏,所以我真的不知道它们在哪里定义?我最感兴趣的$(OutDir)是我要更改为解决方案调试/发布文件夹.有谁知道这些定义在哪里?

Who*_*aig 10

在Visual Studio 2010中,主项目设置将定义输出文件夹,从此文件夹分配设置的宏是$(OutDir).还有其他预定义的宏无法修改,但您可以使用此宏.

如果我了解您要执行的操作,请按以下步骤操作:

  1. 打开项目的属性对话框.
  2. 在对话框的顶部有两个下拉列表,一个用于"配置",一个用于"平台".选择"配置"列表的"全部"选项.
  3. 在顶部的常规设置页面上是指定"输出目录"的文件夹.将其更改为以下(引用可选)"$(SolutionDir)$(配置)\".尾随反斜杠很重要.这是$(OutDir)最终选择的设置.
  4. 打开左树中的"链接器"项.然后选择"常规"设置.
  5. 在列表顶部的右窗格中是"输出文件"选项.它应默认为 "$(OutDir)$(TargetName)$(TargetExt)".如果不是,则将其设置为.
  6. 重建世界.

注意:如果您有多个平台目标(例如win32和x64),这会涉及更多,但不是那么糟糕.希望这可以帮助.


编辑 OP也希望PDB和增量链接文件不能在同一文件夹中公布,但希望公布有导入库.所以.....

要更改创建PDB文件的位置:

  1. 打开项目文件,再次选择"全部"选项以更改所有构建配置目标(请参阅上面的#2).
  2. 在左侧树中选择"链接器/调试"设置.
  3. 顶部的第二项应该是"生成程序数据库文件"设置.将其更改为"$(IntDir)$(TargetName).pdb"

增量链接文件必须(据我所知)与最终目标位于同一文件夹中.但是,如果需要,可以禁用增量链接.这是在以下位置完成的:

  1. 打开项目文件,再次选择"全部"选项以更改所有构建配置目标(请参阅上面的#1).
  2. 选择项目的链接器/常规设置.
  3. 第四项应该是"启用增量链接".将其设置为.
  4. 如果您确实禁用了增量链接,则无法使用Visual Studio的编辑和继续PDB调试格式功能,但是当您禁用增量链接时,UI太笨,无法为您解决此问题.因此,请在项目窗格中选择C++/General .然后,如果设置为"编辑/继续编程数据库",则将其切换到Program Database/Zi.

移动构建导入库的位置.

  1. 打开项目文件,再次选择"全部"选项以更改所有构建配置目标(请参阅上面的#2).
  2. 选择链接器/高级
  3. 在右侧窗格中将是一个关于中途的项目,导入库.将其更改为"$(OutDir)$(TargetName).lib"

不要问我如何摆脱导出列表文件(.exp)因为老实说我不知道​​.