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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在vs2012中构建pcl时C ++ CMake FLANN失败相关的知识,希望对你有一定的参考价值。

试图在Windows 8.1中的VS2012上构建PCL,这样我就可以尝试将我的Kinect for Windows v2传感器与它集成,但是我似乎遇到了一堆我不知道如何处理的CMake错误。这部分是因为我对CMake不太熟悉,因此我遵循教程here,该教程概述了使用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 Release flann.lib'D: flann-1.8.4-src flann-1.8.4-src build examples LINK错误25错误MSB3073:命令“setlocal C: CMake bin cmake.exe -DBUILD_TYPE = Release -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

对于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

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

答案

我在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项目。

希望对你有效。

以上是关于在vs2012中构建pcl时C ++ CMake FLANN失败的主要内容,如果未能解决你的问题,请参考以下文章

CMake-FLANN库未生成(对于PCL库)

VS 2017 中的 CMake 在构建时不显示构建日志

C ++如何为vs 2015 x86构建opencv

PCL1.12+VTK9.1+QT6编译部署

PCL1.12+VTK9.1+QT6编译部署

学习PCL库你应该知道的C++特性