QtCreator无法打开包含文件(Windows)
我正在尝试在windows上编译一个开源项目: 我正在使用QtCreator 2.7.0、Qt Qt5.0.2 msvc2010\u opengl、msvc2010 我的脏衣服是这样的:QtCreator无法打开包含文件(Windows),windows,qt,opencv,eigen,visual-studio-2010,Windows,Qt,Opencv,Eigen,Visual Studio 2010,我正在尝试在windows上编译一个开源项目: 我正在使用QtCreator 2.7.0、Qt Qt5.0.2 msvc2010\u opengl、msvc2010 我的脏衣服是这样的: C:\ C:\libs\opencv-2.4.2\ C:\libs\pcl-1.6.0 C:\libs\Qt\Qt5.0.2 C:\fabscan\FabScan100-master 我修改了qtTest.pro文件以包含必要的头文件和lib: INCLUDEPATH += C:\libs\pcl-1.6.0
C:\
C:\libs\opencv-2.4.2\
C:\libs\pcl-1.6.0
C:\libs\Qt\Qt5.0.2
C:\fabscan\FabScan100-master
我修改了qtTest.pro文件以包含必要的头文件和lib:
INCLUDEPATH += C:\libs\pcl-1.6.0\3rdParty\Eigen\include
LIBS += C:\libs\pcl-1.6.0\3rdParty\Eigen\bin
INCLUDEPATH += C:\libs\pcl-1.6.0\3rdParty\FLANN\include\flann
LIBS += C:\libs\pcl-1.6.0\3rdParty\FLANN\lib
INCLUDEPATH += C:\libs\pcl-1.6.0\3rdParty\Boost\include\boost
LIBS += C:\libs\pcl-1.6.0\3rdParty\Boost\lib
INCLUDEPATH += C:\libs\opencv-2.4.2\opencv\build\include
LIBS += C:\libs\opencv-2.4.2\opencv\build\x86\vc10\lib
INCLUDEPATH += C:\libs\pcl-1.6.0\include\pcl-1.6
LIBS += C:\libs\pcl-1.6.0\lib \
-lpcl_common \
-lpcl_io \
-lpcl_filters \
-lpcl_kdtree \
-lpcl_registration \
-lpcl_features \
-lpcl_segmentation \
-lpcl_surface \
-lpcl_search
但当我按下编译按钮时,QtCreator抛出了一个错误:
..\qtTest\staticHeaders.h(4) : fatal error C1083: Cannot open include file: 'Eigen/Core': No such file or directory
这有点奇怪,因为文件确实在那里。我还可以在QtCreator中按STRG并单击staticHeaders.h中的include语句来打开它
有什么想法吗?基于
staticHeaders.h
代码(第4行),您需要一个名为“Eigen”的文件夹,其中包含“Core”文件。例如,我在Linux上有/usr/include/eigen2/Eigen/Core
,在这种情况下,必须使用qmake将/usr/include/eigen2
添加到INCLUDEPATH
变量中。确保您有C:\libs\pcl-1.6.0\3rdParty\Eigen\include
此外,如果根据您的评论,QtCreator中的qmake不起作用,您始终可以尝试通过
execute qmake
选项显式强制重新运行qmake。您是将本征库路径放入LIBS中,还是将其父路径也放入LIBS中?请注意,代码试图包括Engine/Core,而不是Core。如果只包含_Eigen而不包含它的父项,它将不起作用。您能确认一下吗?@LaszloPapp在INCLUDE目录(C:\libs\eigen-3.0.5\INCLUDE)中是一个目录“eigen”,其中包含文件“Core”(没有扩展名)。我想没关系吧?但是在LIBS目录(C:\LIBS\eigen-3.0.5\bin)中只有两个DLL文件(msvcp100.DLL和msvcr100.DLL)-而不是像其他lib目录那样的*.lib文件:-/根据staticHeaders.h代码(第4行),您需要一个名为“eigen”的文件夹,其中包含“Core”文件。在下面的某个地方,在eigen lib父目录中有这样一个文件夹吗?例如,我在Linux上有:/usr/include/eigen2/Eigen/Core,在这种情况下,必须使用qmake将/usr/include/eigen2添加到LIB变量中。在“C:\libs\pcl-1.6.0\3rdParty\Eigen\include”中是否有“Eigen”文件夹?确定。因为我愚蠢而揍我一顿。我认为保存*.pro文件并按build是我所要做的一切。最近发现了这个神奇的“execure qmake”按钮。据我所知,在对*.pro文件进行更改后,我必须单击该按钮重新创建make文件。Reini,好的,提交了一份涵盖此内容的答案。谢谢。还发现,Eigen是一个只包含头的库,它没有任何必要的libs,因此在任何时候都不需要修改libsall@Reini:是的,你说得对。我本想写封信的,对不起。:)