Visual Studio C ++仅使用环境变量添加标准标题位置

时间:2019-06-07 07:07:38

标签: c++ visual-studio environment-variables

我的项目中有一个外部依赖项,无法更改。它是用一些非常复杂的Python构建的,该Python需要更多的构建工具。

所有这些最终归结为编译错误:C ++找不到头文件。

像这样包含头文件:

#include <sqlite3.h>

问题:

是否可以在仅环境变量的帮助下将自定义包含目录添加到Visual Studio C ++。如果是的话-怎么样?

我无法更改解决方案,项目或源文件,它们都将自动下载

我正在使用最新的Visual Studio-2017

1 个答案:

答案 0 :(得分:0)

  

是否可以向Visual Studio C ++添加自定义包含目录   借助环境变量。

恐怕答案是否定的。仅使用环境变量是不可能实现这一目标的。

  1. 请检查this:在VS中编译项目时,如果编译器遇到#include语句,它将尝试打开指定的文件。如果文件是绝对路径,则仅尝试从该特定路径加载。

如果文件是相对路径,它将尝试首先从正在编译的文件的目录中加载。如果在与cpp文件相同的文件夹中找不到该文件,则编译器将尝试在其“包含目录”列表中的每个路径中查找该文件。

  1. 在VS IDE中,我们可以设置Include DirectoriesAdditional Include Directories来设置搜索路径。因此,如果我有头文件Test.h,并且使用类似{{1 }},编译器可以找到标头。

如果我使用诸如#include <AbsolutePath\Test.h>之类的语句,则在设置搜索路径之前无法找到头文件。在这种情况下,我可以为所有调试和发行版都设置#include <Test.h>,以使编译器找到头文件(Test.h位于Company文件夹中):

enter image description here

注意:但是,大多数情况下,我们应该知道一点,当我们更改Project => Properties中的设置时,实际上是在修改项目文件。(xx.vcxproj)。

  

如上所述,我们无法对项目文件进行任何更改,因此   我们无法通过这种方式实现目标。相反,我认为你可以尝试   使用   Directory.build.props   文件。

创建一个Directory.Build.props文件,将其移动到项目文件夹的根目录。对我来说:Additional Include Directories文件夹。将以下内容添加到其中:

C:\Users\userName\source\repos

我们可以将头文件放入<Project> <ItemDefinitionGroup> <ClCompile> <AdditionalIncludeDirectories>C:\Company;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> </ClCompile> </ItemDefinitionGroup> </Project> (我们可以以此方式指定文件夹)文件夹中,编译器可以找到它。另外,我们不会对解决方案,项目或源文件进行任何更改。

如果有帮助,请告诉我:)如有任何反馈,请随时与我联系。