C++ #当Visual Studio自动完成建议可以找到文件时,包括未找到文件

C++ #当Visual Studio自动完成建议可以找到文件时,包括未找到文件,c++,visual-studio-2019,glfw,glad,C++,Visual Studio 2019,Glfw,Glad,我正试图将Glad(由GL3.3api生成(与GLFW也有类似的include问题))也包括在内 其中我的VS解决方案的文件结构为 -solutionName --projectName ---src ----projectname.h <- Where I am including from for now, latter I want to include from elsewhere under the src directory. ---vendor (same level as

我正试图将Glad(由GL3.3api生成(与GLFW也有类似的include问题))也包括在内

其中我的VS解决方案的文件结构为

-solutionName
--projectName
---src
----projectname.h <- Where I am including from for now, latter I want to include from elsewhere under the src directory.
---vendor (same level as src)
----Glad
-----include
------glad
-------glad.h
------KHR
-------khrplatform.h
并且我能够在src目录中包含如下标题:

#include <spdlog/spdlog.h>
#包括
它工作正常,不会引发任何问题

此文件的文件结构是

-solutionName
--projectName
---src
----Utilities
-----Logger.h <- Where I am including from.
---vendor (same level as src)
----spdlog
-----include
------spdlog
-------spdlog.h <- file I am including just fine.
-解决方案名称
--项目名称
---src
----公用事业
-----Logger.h使用
“glad/glad.h”
而不是

使用尖括号,编译器只搜索标准路径中的include,并使用引号搜索您定义的其他include路径。

使用
“glad/glad.h”
而不是


使用尖括号,编译器只搜索包含的标准路径,使用引号,它还搜索您定义的其他包含路径。

好吧,所以我终于找到了答案,我不满意我必须这样做,但我想它可以工作,所以除非有人提出建议,否则我将继续。所以,问题归结到我在一个静态库中包含了头,然后在其他地方使用了这个静态库。(我没有意识到这是一个问题,否则我会在最初的问题中提到,对不起大家。)我通过一个标题包含了我的lib,这个标题包含了我想要访问的所有依赖项,之后这些第三方静态lib将变得越来越抽象,但目前我必须做的是告诉我的另一个“沙盒”(非库)项目也有额外的include目录,比如

$(SolutionDir)MyLibName\vendor\Glad\include


理想情况下,除了MyLib之外,我不想包含任何内容,但我想这是我目前的工作。感谢所有提出建议的人

好吧,我终于明白了,我不满意我是怎么做的,但我想这是可行的,所以除非有人提出建议,否则我会继续前进。所以,问题归结到我在一个静态库中包含了头,然后在其他地方使用了这个静态库。(我没有意识到这是一个问题,否则我会在最初的问题中提到,对不起大家。)我通过一个标题包含了我的lib,这个标题包含了我想要访问的所有依赖项,之后这些第三方静态lib将变得越来越抽象,但目前我必须做的是告诉我的另一个“沙盒”(非库)项目也有额外的include目录,比如

$(SolutionDir)MyLibName\vendor\Glad\include



理想情况下,除了MyLib之外,我不想包含任何内容,但我想这是我目前的工作。感谢所有提出建议的人

我更改了它,使include现在显示为
#include“glad/glad.h”
,但是得到了相同的错误“C1083”。它现在没有红色的错误线,虽然看起来像是在进步。不正确,额外的搜索路径用于搜索尖括号和引号中的头文件。嗯,我以前就错了…:-)。似乎我们需要他额外包含目录的完整列表来进一步分析此问题。更新:不要担心红色错误下划线消失,它现在在重新加载Visual studio后返回。这是我额外包含目录的完整列表:“src”“vendor\spdlog\include”“vendor\GLFW\include”“vendor\Glad\include”我更改了它,使include现在显示为
#include“glad/glad.h”
,但是得到了相同的错误“C1083”。它现在没有红色的错误线,虽然看起来像是在进步。不正确,额外的搜索路径用于搜索尖括号和引号中的头文件。嗯,我以前就错了…:-)。似乎我们需要他额外包含目录的完整列表来进一步分析此问题。更新:不要担心红色错误下划线消失,它现在在重新加载Visual studio后返回。这是我额外包含目录的完整列表:“src”“vendor\spdlog\include”“vendor\GLFW\include”“vendor\Glad\include”在附加的include目录中使用绝对路径。我已将
vendor/Glad/include
替换为
D:\VSProjects\solutionName\ProjectName\vendor\Glad\include
应用了更改并重新启动了VS,但Glad/Glad.h仍然存在相同的“C1083”错误。无法查看错误,请检查拼写错误。顺便说一句,我认为最好把它作为一个单独的项目来建设。如果文件位于您的项目目录中,请使用VS宏
$(ProjectDir)
来表示它,而不是真正的路径。您能否详细说明您所说的“我认为最好将其作为一个单独的项目构建”的意思如果您指的是Glad,那么我想我可能会像visualstudio那样将库构建到一个.lib文件中,并将项目作为我试图包含头的项目的依赖项。我可能完全偏离了方向,误解了你的意思!我现在已经在宏中添加了所有附加的include目录路径,它一直工作到我再次尝试包含为止。因此,如果它是一个依赖项,为什么要将它放在项目目录中?这不是你项目的一部分。这是一个单独的项目。请在附加的include目录中使用绝对路径。我已将
vendor/Glad/include
替换为
D:\VSProjects\solutionName\ProjectName\vendor\Glad\include
应用了更改并重新启动了VS,但Glad/Glad.h仍然存在相同的“C1083”错误。看不出有什么问题,请检查输入错误。顺便说一句,我认为最好把它作为一个单独的项目来建设。如果文件位于您的项目目录中,请使用VS宏
$(ProjectDir)
来表示它,而不是真正的路径。您能否详细说明您所说的“我认为最好将其作为一个单独的项目进行构建”的意思。如果您指的是“高兴”,那么我想我可能会像visual studio那样将其构建到库中
<glad/glad.h>
vendor\spdlog\include
#include <spdlog/spdlog.h>
-solutionName
--projectName
---src
----Utilities
-----Logger.h <- Where I am including from.
---vendor (same level as src)
----spdlog
-----include
------spdlog
-------spdlog.h <- file I am including just fine.
#include <glad/glad.h>
#include <GLFW/glfw3.h>
$(SolutionDir)MyLibName\vendor\Glad\include
$(SolutionDir)MyLibName\vendor\GLFW\include