因此,我正在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的情况下手动运行我的可执行文件可以正常工作...
答案 0 :(得分:0)
也许您的包含路径中有一些无法识别的符号。 你的绝对路径是什么?
答案 1 :(得分:0)
解决方案如下:
我的应用程序包含3个子项目:主gui应用程序+ 2个插件,其中包括一些主gui的源代码。现在,该错误发生在主应用程序的源代码中,但是恰好该源代码恰好包含在其中一个插件中。在该插件.pro文件中,虽然没有给外部SimConnect库的路径,但这是问题所在。
所以...如果您包括其他项目的源代码,请确保还包括该子项目中所需的所有依赖项。因为否则可能会导致错误消息的理解。