Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Visual Studio包含Dll子项目标题问题_C++_Visual Studio 2013_Qt5 - Fatal编程技术网

C++ Visual Studio包含Dll子项目标题问题

C++ Visual Studio包含Dll子项目标题问题,c++,visual-studio-2013,qt5,C++,Visual Studio 2013,Qt5,前几天,我在VisualStudio中遇到了一个包含dll的问题,我以为我已经解决了所有的问题,但事实证明我没有。我的问题也很奇怪,因为一个选项有效,而另一个则无效。我所经历的行为有点奇怪,但我会尽力解释它。首先,这里是我尝试的一些代码,其中一个用于包含我创建的dll中的头: #include <QtWidgets/QApplication> #include <QMainWindow> /* This below works; it seems to be st

前几天,我在VisualStudio中遇到了一个包含dll的问题,我以为我已经解决了所有的问题,但事实证明我没有。我的问题也很奇怪,因为一个选项有效,而另一个则无效。我所经历的行为有点奇怪,但我会尽力解释它。首先,这里是我尝试的一些代码,其中一个用于包含我创建的dll中的头:

#include <QtWidgets/QApplication>
#include <QMainWindow>
/*
    This below works; it seems to be stepping backwards out of the
    project and into the folder of the dll project.
*/
#include "../ArclightFramework/GameWindow.h" // This works.
/*
    Below does not work, even though the path has been set in the
    additional directories field of the project. Oddly, though, I
    do get intellisense for the path the below.
*/
#include "ArclightEngine/ArclightFramework/GameWindow.h" // Does not work.
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    GameWindow f;
    f.show();
    return a.exec();
}
这里甚至有一张相同鼠标悬停错误的图片:

你看,奇怪的是,我确实包含了我额外导入目录的路径;这是一张照片:

这是那个目录,完整的路径显示所有的东西都应该被正确地找到。

我的问题很简单。为什么visual studio找不到包含文件

更新:这是另一张显示Intellisense如何提供包含路径的完成的图片,但再次说明,它在之后不起作用!

另一更新: 好吧,所以我尝试了一些新的东西。这一次,我没有将绝对路径添加到附加的Include字段,而是添加了:$ProjectDir../。/Intellisense再次为该路径及其标题提供了完整性。但之后它不会识别文件本身,但它们确实存在,并且路径是完美的。使用上面的宏,我的路径将我的include路径转换为:arclaightEngine/arclaightFramework/BLAH.h

下面是一张新图片,显示了我所包含的路径:

我不明白我所做的和正在工作的路径(包括../ArclightFramework/GameWindow.h)之间有什么区别

此外,显然这条包含路径现在也可以工作了:

"#include "/Users/Krynn/Desktop/ArclightEngine/ArclightEngine/ArclightFramework/GameWindow.h""
TL;博士
我只想能够键入include-arclaightEngine/arclaightFramework/blah.h

您所说的用户include是:

C:\Users\Krynn\Desktop\ArclightEngine
您试图包括:

"ArclightEngine/ArclightFramework/GameWindow.h"
ArclightFramework\GameWindow.h
因此,VS将尝试使用引号而不是尖括号的第一条路径是:

C:\Users\Krynn\Desktop\ArclightEngine\ArclightEngine\ArclightFramework\GameWindow.h
这只是两条路径加在一起,所以这永远不会起作用

因此包括:

"../ArclightEngine/ArclightFramework/GameWindow.h"
变成:

C:\Users\Krynn\Desktop\ArclightEngine\..\ArclightEngine\ArclightFramework\GameWindow.h
即:

C:\Users\Krynn\Desktop\ArclightEngine\ArclightFramework\GameWindow.h

因此,这是可行的。因此,另一个选择应该包括:

"ArclightEngine/ArclightFramework/GameWindow.h"
ArclightFramework\GameWindow.h
更新:


看起来您真正的问题是您更新了版本Win32的配置,但是您正在构建具有不同设置的调试Win32。更新适用于所有配置和平台(如包含路径)的设置时,请确保从组合框中选择所有配置和所有平台。

@PiotrS。妈的,我把标记放错地方了。目录从/ArclightEngine/ArclightFramework开始,如果您查看上面的图片,就会看到。所以不,你的建议不起作用。@PiotrS。请记住,我确实获得了ArclightEngine/ArclightFramework/GameWindow的intellisense。但是,它实际上链接不正确。@AlexFarber请看我刚才添加的图片。@AlexFarber和你的评论毫无意义,因为我的文件与你说的完全一样。请从顶部往下看第三张图片中提供的路径。@Alex Farber如果我表现得咄咄逼人,我向你道歉。这是无意的。我觉得这个问题很愚蠢,而且造成了很多挫折。我也无法添加您要求的日志,因为我刚刚爬上床。然而,我会在醒来时这样做。因此,这是可行的。因此,另一个选项应该包括:ArclightFramework\GameWindow.h与上述错误完全相同的错误仍然存在,无法打开源文件。另外,请在原始帖子的底部查看我的更新。请启用此选项:然后使用ctrl+F7编译出现问题的单个cpp文件,并发布输出。I选中您建议的选项,确保我位于试图使用包含的源文件中,然后按ctrl+F7。没有看到新的输出,但这里显示的是:有些东西不在这里,它将显示编译器正在查找该文件的目录