c++ - Visual Studio 添加真正的 "global"默认包含路径

标签 c++ visual-studio header include-path

有没有简单的添加路径的方法,全局 (即对于一台机器上的所有用户),到 Visual Studio 中的一组包含/库目录?

我正在寻找的是能够为所有项目(过去和 future )安全地将包含/库路径添加到 Visual Studio。这相当于 INCLUDE、LIB 和 LIBPATH 环境变量,它们似乎适用于命令行构建,但由于某些原因在通过 Visual Studio 构建时完全被忽略。它必须应用于机器上的所有用户。

我是什么不是 寻找正在更改用户特定的 MSBuild 属性表,Microsoft.Cpp.Win32.user.props ,因为这只会为特定机器上的特定用户添加路径。虽然这似乎是完成“全局”设置的推荐方法,但它不能应用于我的用例:

我参与教授工程师类(class)的编程导论,每年大约有 1000 名学生。我们有一个计算机实验室供他们每周进行实验室测验,但是每次学生退出时,都会有意清除每个用户的任何设置/文档(因此我们不能依赖用户 Prop )。作为类(class)的一部分,他们需要使用自定义类(class)库与硬件单元交互(因此需要添加包含/lib 路径)。手动添加每个项目的路径超出了我们教学生的范围,而且会变得乏味,因为他们将在整个学期每周创建几个项目。

我们尝试过的:

  • 将所需的头文件/库安装到 Windows SDK 路径。
    这绝对不是理想的,每当 Windows SDK 更新到更新版本时就会中断
  • 将所需的头文件/库安装到 Visual Studio 的 Auxiliary小路。
    通过检查默认的 VC++ 包含目录,VS2017 似乎包含路径 C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\VS在搜索头文件和库时。根据docs ,该文件夹应该用于并非真正属于编译过程的工具。这是我们目前所做的,但感觉不对,而且文件夹位置在过去的 Visual Studio 版本中发生了变化,因此将来可能会发生变化(因此我们在过去 5 年中一直坚持使用 VS2012)。每当我们在实验室中更新 Visual Studio 时,我们还必须重新安装该库。

  • 我们可以尝试:
  • 将路径添加到工具集默认属性表。
    同样,在各种论坛中都建议反对使用用户 Prop (例如 here )。工作表本身警告不要修改它们,担心每当工具集更新时它们会被重置,如果在升级 VS 时安装了新工具集,我们将不得不重新修改该工具集的默认工作表。
  • 创建具有所需设置的项目模板。
    我们可以创建一个模板,学生在通过新建项目向导创建新项目时应选择该模板。担心的是,如果学生使用错误的模板创建项目(这在如此规模的类(class)中经常会不可避免地发生),并且在没有适当环境设置的情况下开始他们的测验任务,那么处理提出的问题将是一场噩梦我们有限的员工。此外,模板是特定于 VS 版本的(并放置在特定于版本的文件夹中),因此每次更改 Visual Studio 版本时,我们都必须重新安装模板。

  • 整个想法是让我们的工作流程面向 future 。我们想要做的非常简单:将单个 header 和单个库添加到默认搜索路径,并且它应该适用于安装在机器上的任何版本的 Visual Studio。在任何其他系统/IDE 上,这是一项微不足道的任务。命令行 MSBuild 甚至通过环境变量支持它。但是由于某种原因,我们找不到 Visual Studio 的简单解决方案。

    有没有人有更好的主意?

    最佳答案

    创建一个包含您需要的所有必要更改的“全局”属性表,并将其添加到任何和所有新项目中。

    对于我的示例,我创建了一个名为 core.props 的属性表。 ,并将其保存在解决方案目录中(但您可以将其保存在任何位置),在此文件中,我添加了包含和库名称/目录(以及其他设置,例如指定 Visual Studio 使用实验性 C++ 语言功能;指定输出文件的精确目录;更改调试设置;等等),每当我创建需要使用这些设置的项目时,我只需将该属性表附加到项目中。

  • 对于任何项目(或新项目),从解决方案资源管理器面板打开属性管理器。
  • 打开任何随机项目所需的配置文件夹(可能是 Debug x64 ,但这取决于您)并为该文件夹“添加新项目属性表”
  • 创建文件后,打开它
  • 对每个项目进行所需的任何修改
  • 保存文件
  • 对于需要这些属性的每个其他项目,打开相同的文件夹(或任何其他文件夹,如果这些设置不是特定于配置的)并将“添加现有属性表”到该文件夹​​
  • 冲洗,重复

  • 您需要稍微调整一下确切的设置以确保它按您期望的方式工作(您是否需要为库/包含/等指定相对路径或绝对路径?),但任何时候创建一个新项目,你只需要设置那一张,你需要的所有设置都会被导入到项目中。如果您以后需要进行更改,则只需修改该一个文件即可修改所有文件。

    关于c++ - Visual Studio 添加真正的 "global"默认包含路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48571179/

    相关文章:

    javascript - 如何在使用 Visual Studio 2019 制作的 Django 项目中添加 TypeScript 文件

    c# - 递归失败

    wpf - 垂直 Epander 会喜欢垂直标题

    java - Java 套接字中的 HTTP

    ios - 如何为特定节标题设置背景颜色?

    c++ - 如何在 C++ 中使用 printf

    c++ - C++ 中的内存黑客攻击/修改

    c++ - 类复制构造函数和指向成员函数的指针

    python - pip安装错误: Microsoft Visual C++ 10. 0是必需的

    C++ unique_ptr vector