Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.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
QtCreator无法打开包含文件(Windows)_Windows_Qt_Opencv_Eigen_Visual Studio 2010 - Fatal编程技术网

QtCreator无法打开包含文件(Windows)

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

我正在尝试在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\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:是的,你说得对。我本想写封信的,对不起。:)