• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

VS工程配置2——属性

武飞扬头像
sunny5821
帮助1

参考:官方文档说明

概述

默认属性
创建项目时,系统分配各种属性的值。 根据项目类型和在应用向导中所选的选项类型,默认值会有所不同。默认属性在属性页的“常规”窗格中显示:
学新通
MSBuild 支持对某些字符串值(例如包含目录和路径)使用称为宏的编译时常量。 宏可以引用由 Visual Studio 或 MSBuild 系统定义的值,也可以引用用户定义的值。 宏类似于 $(macro-name) 或 %(item-macro-name)。 它们公开在属性页中,可以使用属性编辑器在其中对它们进行引用和修改。 使用宏而不是硬编码的值,例如目录路径。 通过宏,可以更轻松地在计算机之间和 Visual Studio 版本之间共享属性设置。 此外,可以更好地确保项目设置能正确参与属性继承。

使用属性编辑器来修改特定字符串属性,选择宏作为值。
学新通在属性编辑器中,可以选择“宏”按钮查看可用宏及这些宏的当前值 。 下图显示选中“宏”按钮后,“附加包含目录”属性的属性编辑器 。 如果选中“从父级或项目默认设置继承”复选框并添加了新值,则该值会附加到当前被继承的任意值。 如果清除复选框,则新值会替换继承值。 在大多数情况下,选中复选框。
学新通

常规属性页(项目)

目标平台:指定运行项目的平台。 例如,Windows、Android 或 iOS。
“目标平台版本”:指定用于生成项目的 Windows SDK 的版本。
Windows SDK 版本
输出目录:指定生成工具(如链接器)放置生成过程中创建的所有最终输出文件的目录。 通常,此目录保存链接器、库或 BSCMake 等工具的输出。 默认情况下,此属性是由宏组合 指定的目录 ( S o l u t i o n D i r ) (SolutionDir) (SolutionDir)(Configuration)\。
比如可以看dll和exe生成的位置

中间目录:指定编译器等工具放置生成过程中创建的所有中间文件的目录。 通常,此目录保存 C/C 编译器、MIDL 和资源编译器等工具的输出。 默认情况下,此属性是由宏 指定的目录 $(Configuration)\。

高级属性页

目标文件扩展名:指定要用于生成输出的文件扩展名。 应用程序默认为 .exe,静态库默认为 .lib,DLL 默认为 .dll。

将内容复制到 OutDir、将项目引用复制到 OutDir、将项目引用的符号复制到 OutDir、将 C 运行时复制到 OutDir

VC 目录属性页

可执行目录
在其中搜索可执行文件的目录。 对应于 PATH 环境变量。

包含目录
在其中搜索源代码中所引用的包含文件的目录。 对应于 INCLUDE 环境变量。

外部包含目录
在编译期间被视为外部或系统文件的包含文件的路径。 在生成最新状态检查时将跳过这些文件。 外部包含属性也使用这些路径。 若要详细了解如何在 IDE 中设置这些选项,请参阅 /external 编译器选项。

引用目录
通过 #using 指令在其中搜索源代码中所引用的程序集和模块(元数据)文件的目录。 对应于 LIBPATH 环境变量。

库目录
要在其中搜索库 (.lib) 文件的目录。 此搜索包括运行时库。 对应于 LIB 环境变量。 此设置不适用于 .obj 文件,若要链接到 .obj 文件,请在“配置属性”>“链接器”>“常规”属性页上选择“其他库依赖项”,然后指定文件的相对路径。 有关详细信息,请参阅链接器属性页。

库 WinRT 目录
搜索用于通用 Windows 平台(UWP) 应用的 WinRT 目录文件的目录。

源目录
在其中搜索用于 IntelliSense 的源文件的目录。

排除目录
Visual Studio 在每次编译之前都会查询所有文件上的时间戳,确定自上次编译后是否修改过任何内容。 如果项目具备一些大型且稳定的库,则通过从时间戳检查中排除这些库,可以潜在地加快生成时间。

链接器属性页

输出文件
该 /OUT 选项将替代链接器创建的程序的默认名称和位置。

附加库目录
允许用户替代环境的库路径。 (/LIBPATH:folder)

链接库依赖项
指定是否链接 .lib 由依赖项目生成的文件。 通常,你想要在文件中链接 .lib ,但某些 DLL 可能并非如此。

还可以通过提供文件名和相对路径(例如)…\MyLibProject\MyObjFile.obj来指定.obj文件。 例如,如果文件的源代码.obj具有#include预编译标头,则pch.obj该文件位于同一文件夹中MyObjFile.obj。 pch.h 还必须添加 pch.obj 为附加依赖项。

使用库依赖项输入
指定在项目依赖项的库输出中进行链接时,是否使用对文档管理程序工具的输入,而不使用库文件本身。 在大型项目中,当依赖项目生成 .lib 文件时,将禁用增量链接。 如果存在许多生成 .lib 文件的依赖项目,则生成应用程序可能需要很长时间。 当此属性设置为 “是”时,项目系统会链接 .obj 依赖项目生成的文件的文件中 .lib ,从而启用增量链接。

有关如何访问 常规 链接器属性页的信息,请参阅 设置编译器和生成属性。

“输入”属性页
附加依赖项
指定要添加到链接命令行的额外依赖项项,例如 kernel32.lib。

包含目录、库目录、附加库目录、附加库目录等概念区分

结合下一篇静态库和DLL使用更好理解。

“配置属性”>“C/C ”>“常规”>“附加包含目录”:输入静态库和动态库的头文件路径

“配置属性”>“链接器”>“输入”>“附加依赖项”:输入动态库的lib名字

“配置属性”>“链接器”>“常规”>“附加库目录":输入动态库lib的路径

其他博客说明:

“配置属性”>VC 目录>包含目录:寻找#include<xxxx.h>中的xxxx.h的搜索目录

“配置属性”>VC 目录>库目录:寻找.lib文件的搜索目录

C/C >常规->附加包含目录:寻找#include<xxxx.h>中的xxxx.h的搜索目录(每一项对应一个文件夹XXXX,文件夹中包含了编译时所需的头文件,使用时直接#include即可)

包含目录和附加包含目录(库目录和附加库目录)的区别:

包含目录/库目录:修改了系统的include宏的值,是全局的;

附加包含目录/附加库目录:用于当前项目,对其他项目没有影响。

当需要对某工程添加这些目录时,通常情况下,都是在附加包含目录和附加库目录中添加的,官方DLL和静态库教程中使用的也是附加包含目录和附加库目录。

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhggeggg
系列文章
更多 icon
同类精品
更多 icon
继续加载