Visual Studio 预定义宏

Visual Studio 提供了许多预定义宏,用于在项目配置和构建过程中自动替换特定的路径、文件名和其他相关信息。

常用预定义宏

  1. 解决方案和项目目录相关宏

    • $(SolutionDir):解决方案文件(.sln)所在的目录。
    • $(SolutionPath):解决方案文件的完整路径。
    • $(SolutionFileName):解决方案文件的名称。
    • $(SolutionName):解决方案的名称(不包括扩展名)。
    • $(ProjectDir):项目文件(.vcxproj)所在的目录。
    • $(ProjectPath):项目文件的完整路径。
    • $(ProjectFileName):项目文件的名称。
    • $(ProjectName):项目的名称(不包括扩展名)。
  2. 输出目录和文件相关宏

    • $(OutDir):输出目录,通常是 binbuild 目录。
    • $(IntDir):中间目录,通常是 obj 目录,用于存放中间文件(如对象文件)。
    • $(TargetDir):目标目录,即最终生成的文件(如可执行文件或库文件)所在的目录。
    • $(TargetPath):目标文件的完整路径。
    • $(TargetFileName):目标文件的名称。
    • $(TargetName):目标文件的名称(不包括扩展名)。
    • $(TargetExt):目标文件的扩展名。
  3. 配置和平台相关宏

    • $(Configuration):当前的构建配置(如 DebugRelease)。
    • $(Platform):当前的构建平台(如 x86x64)。
  4. 源文件相关宏

    • $(InputDir):当前输入文件的目录。
    • $(InputPath):当前输入文件的完整路径。
    • $(InputFileName):当前输入文件的名称。
    • $(InputName):当前输入文件的名称(不包括扩展名)。
    • $(InputExt):当前输入文件的扩展名。
  5. 用户和环境相关宏

    • $(UserName):当前用户的用户名。
    • $(UserProfile):当前用户的配置文件目录。
    • $(Temp):系统的临时文件目录。

查看和使用宏

在 Visual Studio 中,可以通过以下步骤查看和使用这些预定义宏:

  1. 打开项目属性: 右键点击项目 -> 属性。

  2. 选择配置属性: 选择配置属性,例如 C/C++链接器构建事件

  3. 使用宏: 在对应的属性字段中输入宏名称,例如 $(SolutionDir)$(OutDir)

  4. 查看所有宏: 在任意属性字段中点击 编辑 按钮,选择 ,即可查看当前可用的所有宏及其值。

示例 

示例 1:设置附加包含目录

假设你的项目需要包含一个位于解决方案目录下的 include 文件夹。在这种情况下,你可以在项目属性中使用 $(SolutionDir) 来指定包含目录。

  1. 打开项目属性

    • 右键点击项目 -> 属性。
  2. 导航到包含目录设置

    • 配置属性 -> C/C++ -> 常规 -> 附加包含目录。
  3. 添加包含目录

    • 在附加包含目录字段中,输入:$(SolutionDir)include

这样,在编译时,编译器会将 $(SolutionDir)include 解析为实际的路径,并将其作为头文件搜索路径。

示例 2:设置附加库目录

假设你的项目需要链接一个位于解决方案目录下的 lib 文件夹中的库。在这种情况下,你可以在项目属性中使用 $(SolutionDir) 来指定库目录。

  1. 打开项目属性

    • 右键点击项目 -> 属性。
  2. 导航到库目录设置

    • 配置属性 -> 链接器 -> 常规 -> 附加库目录。
  3. 添加库目录

    • 在附加库目录字段中,输入:$(SolutionDir)lib

这样,链接器会在 $(SolutionDir)lib 目录中查找库文件。

示例 3:设置输出目录

假设你希望生成的二进制文件(如可执行文件)位于解决方案目录下的 bin 文件夹中。在这种情况下,你可以在项目属性中使用 $(SolutionDir) 来指定输出目录。

  1. 打开项目属性

    • 右键点击项目 -> 属性。
  2. 导航到输出目录设置

    • 配置属性 -> 常规 -> 输出目录。
  3. 设置输出目录

    • 在输出目录字段中,输入:$(SolutionDir)bin

这样,生成的二进制文件将被放置在 $(SolutionDir)bin 目录中。

示例 4:设置预构建事件

假设你有一个批处理脚本 prepare_env.bat,它需要在构建之前运行。这个脚本位于解决方案目录下的 scripts 文件夹中。在这种情况下,你可以在项目属性中使用 $(SolutionDir) 来指定脚本路径。

  1. 打开项目属性

    • 右键点击项目 -> 属性。
  2. 导航到预构建事件设置

    • 配置属性 -> 构建事件 -> 预构建事件。
  3. 设置预构建事件命令行

    • 在命令行字段中,输入:
      call "$(SolutionDir)scripts\prepare_env.bat"
      

这样,在构建项目之前,Visual Studio 会执行 $(SolutionDir)scripts\prepare_env.bat

示例 5:自定义构建事件

假设你希望在构建完成后将生成的可执行文件复制到解决方案目录下的 deploy 文件夹中。在这种情况下,你可以在项目属性中使用 $(SolutionDir)$(TargetFileName) 来指定目标路径。

  1. 打开项目属性

    • 右键点击项目 -> 属性。
  2. 导航到后构建事件设置

    • 配置属性 -> 构建事件 -> 后构建事件。
  3. 设置后构建事件命令行

    • 在命令行字段中,输入:
      copy "$(TargetPath)" "$(SolutionDir)deploy\$(TargetFileName)"
      

这样,在构建项目之后,Visual Studio 会将生成的可执行文件复制到 $(SolutionDir)deploy 目录中。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值