QtCreator中的“致命错误C1083:无法打开包含文件”

时间:2019-08-23 00:08:07

标签: c++ windows compiler-errors qt-creator

因此,我正在QtCreator中进行一个C ++项目,该项目一直运行良好。该项目包括一些外部库,例如DDS解决方案,但还包括一个名为“ SimConnect”的库。我以前在图书馆工作过,但一切正常,但是突然之间我突然无法再编译我的项目。

我正在将Qt5.6.0与MSVC13 32位编译器一起使用。

C:\dev\simNET\application\P3DHook.h:13: Fehler: C1083: Cannot open include file: 'SimConnect.h': No such file or directory

我知道这是一个编译器问题,因此我重新检查了.pro文件,以查看它是否将include和lib路径正确添加到该库中。在我看来,这看起来不错(是的,SimConnect.h文件实际上在指定的路径中,我也尝试给它提供一个绝对路径,但这也不能解决问题):

win32: LIBS += -L$$PWD/'../../_programme/P3Dv3_SDK/Utilities/SimConnect SDK/lib/' -lSimConnect

INCLUDEPATH += $$PWD/'../../_programme/P3Dv3_SDK/Utilities/SimConnect SDK/Inc'
DEPENDPATH += $$PWD/'../../_programme/P3Dv3_SDK/Utilities/SimConnect SDK/Inc'

win32:!win32-g++: PRE_TARGETDEPS += $$PWD/'../../_programme/P3Dv3_SDK/Utilities/SimConnect SDK/lib/SimConnect.lib'
else:win32-g++: PRE_TARGETDEPS += $$PWD/'../../_programme/P3Dv3_SDK/Utilities/SimConnect SDK/lib/libSimConnect.a'

我还尝试手动重新运行qmake ,并且我删除了整个构建文件夹,清理了项目并尝试对其进行重建。同样的错误。

因此,接下来我看一下编译控制台,并发现发生错误的部分:

DNDEBUG -I..\..\..\simNET\plugins\CreatorPlugin -I. -I..\..\..\simNET\application -I..\..\..\_programme\FastRTPS1.5\include -I..\..\..\..\Qt\5.6\msvc2013\include -I..\..\..\..\Qt\5.6\msvc2013\include\QtWidgets -I..\..\..\..\Qt\5.6\msvc2013\include\QtGui -I..\..\..\..\Qt\5.6\msvc2013\include\QtANGLE -I..\..\..\..\Qt\5.6\msvc2013\include\QtCore -Irelease -I..\..\..\..\Qt\5.6\msvc2013\mkspecs\win32-msvc2013 -Forelease\ @C:\Users\crolk\AppData\Local\Temp\CreatorPluginPublisher.obj.2256.47.jom
CreatorPluginPublisher.cpp
    C:\Qt\5.6\msvc2013\bin\moc.exe -DUNICODE -DWIN32 -DQT_NO_DEBUG -DQT_PLUGIN -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DNDEBUG -D_MSC_VER=1800 -D_WIN32 -IC:/Qt/5.6/msvc2013/mkspecs/win32-msvc2013 -IC:/dev/simNET/plugins/CreatorPlugin -IC:/dev/simNET/application -IC:/dev/_programme/FastRTPS1.5/include -IC:/Qt/5.6/msvc2013/include -IC:/Qt/5.6/msvc2013/include/QtWidgets -IC:/Qt/5.6/msvc2013/include/QtGui -IC:/Qt/5.6/msvc2013/include/QtANGLE -IC:/Qt/5.6/msvc2013/include/QtCore -I. ..\..\..\simNET\plugins\CreatorPlugin\CreatorPluginPublisher.h -o release\moc_CreatorPluginPublisher.cpp
..\..\..\simNET\application\P3DHook.h(13) : fatal error C1083: Cannot open include file: 'SimConnect.h': No such file or directory

看起来它添加了其他包含路径(例如,用于我的DDS库的一个),但是无论我重新运行qmake的频率如何,它都不会添加SimConnect。

有人知道这个问题可能是什么吗?

编辑: 我注意到该构建实际上甚至没有失败。它成功构建了我的项目并创建了可执行文件。由于某种原因,QtCreator仍会认为构建失败,并会向我显示该错误。在没有QtCreator的情况下手动运行我的可执行文件可以正常工作...

2 个答案:

答案 0 :(得分:0)

也许您的包含路径中有一些无法识别的符号。 你的绝对路径是什么?

答案 1 :(得分:0)

解决方案如下:

我的应用程序包含3个子项目:主gui应用程序+ 2个插件,其中包括一些主gui的源代码。现在,该错误发生在主应用程序的源代码中,但是恰好该源代码恰好包含在其中一个插件中。在该插件.pro文件中,虽然没有给外​​部SimConnect库的路径,但这是问题所在。

所以...如果您包括其他项目的源代码,请确保还包括该子项目中所需的所有依赖项。因为否则可能会导致错误消息的理解。