在vs2012中构建pcl时C++ CMake FLANN失败

phy*_*bus 5 vtk qhull point-cloud-library visual-studio-2012 flann

试图在Windows 8.1中的VS2012上构建PCL,这样我就可以尝试将我的Kinect for Windows v2传感器与它集成,但是我似乎遇到了一堆我不知道如何处理的CMake错误.这部分是因为我对CMake不太熟悉,因此我遵循这里的教程,其中概述了使用CMake GUI构建依赖关系.但是,在整个过程中,我发现唯一正确构建的东西是我在命令行中使用cmake构建的东西.错误是:

对于FLANN:

当试图在VS2012中构建INSTALL时(这甚至没有进入其他构建错误,但让我们从这里开始)我得到:

错误21错误C2228:'.serialize'的左边必须有class/struct/union D:\ flann-1.8.4-src\flann-1.8.4-src\src\cpp\flann\util\serialization.h第18行:type.serialize(ar); 错误24错误LNK1181:无法打开输入文件 '..\LIB \发布\ flann.lib' d:\ FLANN-1.8.4-SRC\FLANN-1.8.4-SRC \建造\例子\链接错误25错误MSB3073:命令"SETLOCAL C:\ CMake的\ BIN\cmake.exe -DBUILD_TYPE =释放-P cmake_install.cmake如果%ERRORLEVEL%NEQ 0转到:cmEnd:cmEnd ENDLOCAL&拨打:cmErrorLevel%ERRORLEVEL%转到:cmDone:cmErrorLevel出口/ b%1:cmDone如果%ERRORLEVEL%NEQ 0转到:VCEnd:VCEnd"编码1ç退出:\程序文件(x86)\的MSBuild\Microsoft.Cpp\V4.0\V110\Microsoft.CppCommon.targets 134

对于VTK:

该VTK_USE_QTOPENGL选项没有出现,即使我已经先启用VTK_USE_QT和项目生成的VS2012崩溃了几次,但能搬过去的崩溃(我担心这不适合实际使用VTK好兆头)

对于Qhull:

与FLANN类似的错误:

错误1错误MSB3073:命令"setlocal C:\ CMake\bin\cmake.exe -DBUILD_TYPE = Debug -P cmake_install.cmake if%errorlevel%neq 0 goto:cmEnd:cmEnd endlocal&call:cmErrorLevel%errorlevel%&goto: cmDone:cmErrorLevel exit/b%1:cmDone if%errorlevel%neq 0 goto:VCEnd:VCEnd"退出时使用代码1. C:\ Program Files(x86)\ MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft. CppCommon.targets 134

但其余部分构建得很好.任何的建议都受欢迎.

小智 11

我在Windows 7中使用VS2012构建PCL时遇到了类似的问题.

这就是我解决的问题:对于所有情况,在以管理员身份打开Visual Studio之前.

FLANN

  1. 使用CMake并在"Configure"中单击后,将BUILD_PYTHON_BINDINGS和BUILD_MATLAB_BINDINGS设置为OFF.
  2. 再次单击"配置",然后单击"生成".
  3. 打开解决方案文件(以VS身份管理).
  4. 编辑文件flann\src\cpp\flann\util\serialization.h在语句BASIC_TYPE_SERIALIZER(...)之后添加(它在第93行中是aprox)以下行:#ifdef _MSC_VER BASIC_TYPE_SERIALIZER(unsigned __int64); #万一
  5. 在调试和发布配置中构建ALL_BUILD项目和INSTALL项目.

QHUll

  1. 打开CMake并在单击"Configure"之前,单击"Add Entry"并填写如下字段:名称:CMAKE_DEBUG_POSTFIX类型:STRING值:_d
  2. 然后单击"确定".
  3. 单击"配置"两次,然后单击"生成".
  4. 在调试和发布配置中打开解决方案并构建ALL_BUILD项目和INSTALL项目.

VTK

  1. 打开CMake并在单击"Configure"之前,如果您没有Qt4.x的环境变量,请手动找到:QT_QMAKE_EXECUTABLE到qmake.exe的位置QT_QTCORE_librery_RELEASE QT_QTCORE_LIBRARY_DEBUG QT_MKSPECIF_DIR
  2. 在调试和发布配置中打开解决方案并构建ALL_BUILD项目和INSTALL项目.

希望对你有效.