我的项目中有一个外部依赖项,无法更改。它是用一些非常复杂的Python构建的,该Python需要更多的构建工具。
所有这些最终归结为编译错误:C ++找不到头文件。
像这样包含头文件:
#include <sqlite3.h>
问题:
是否可以在仅环境变量的帮助下将自定义包含目录添加到Visual Studio C ++。如果是的话-怎么样?
我无法更改解决方案,项目或源文件,它们都将自动下载
我正在使用最新的Visual Studio-2017
答案 0 :(得分:0)
是否可以向Visual Studio C ++添加自定义包含目录 借助环境变量。
恐怕答案是否定的。仅使用环境变量是不可能实现这一目标的。
如果文件是相对路径,它将尝试首先从正在编译的文件的目录中加载。如果在与cpp文件相同的文件夹中找不到该文件,则编译器将尝试在其“包含目录”列表中的每个路径中查找该文件。
Include Directories
或Additional Include Directories
来设置搜索路径。因此,如果我有头文件Test.h
,并且使用类似{{1 }},编译器可以找到标头。如果我使用诸如#include <AbsolutePath\Test.h>
之类的语句,则在设置搜索路径之前无法找到头文件。在这种情况下,我可以为所有调试和发行版都设置#include <Test.h>
,以使编译器找到头文件(Test.h位于Company文件夹中):
注意:但是,大多数情况下,我们应该知道一点,当我们更改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>
(我们可以以此方式指定文件夹)文件夹中,编译器可以找到它。另外,我们不会对解决方案,项目或源文件进行任何更改。
如果有帮助,请告诉我:)如有任何反馈,请随时与我联系。