【译】PCL官网教程翻译(7):在Windows上从源代码编译PCL的依赖项-Building PCL’s dependencies from source on Windows

英文原网页查看。
修订:20201115

在Windows上从源代码编译PCL的依赖项

本教程将解释如何在Microsoft Windows平台上从源代码编译点云库需要的依赖项,并指导您完成下载和编译过程。作为示例,我们将使用Microsoft Visual Studio 2008构建源代码以获得32位库。对于其他编译器和64位库,这个过程几乎是相同的。

注意
不要忘记所有依赖项都必须使用相同的编译器选项和体系结构规范进行编译,即不能将32位库和64位库混合使用。

要求

为了编译PCL库的每个组件,我们需要下载并编译一系列第三方库的依赖关系:

注意
虽然本身不是依赖项,但不要忘记还需要CMake构建系统(http://www.cmake.org/),至少版本3.5.0。下载PCL源代码还需要一个用于Windows的Git客户机。

构建依赖关系

在本教程中,我们将编译这些版本库:

Boost : 1.48.0
Flann : 1.7.1
Qhull : 2011.1
Qt    : 4.8.0
VTK   : 5.8.0
GTest : 1.6.0

让我们在C:/PCL_dependencies解压所有库,这样它就会像这样:

C:/PCL_dependencies
C:/PCL_dependencies/boost-cmake
C:/PCL_dependencies/eigen
C:/PCL_dependencies/flann-1.7.1-src
C:/PCL_dependencies/gtest-1.6.0
C:/PCL_dependencies/qhull
C:/PCL_dependencies/VTK
  • Boost:

让我们从Boost开始。我们将使用CMake-able Boost工程,该工程为Boost提供了一个基于CMake的构建系统。
要构建Boost,打开CMake-gui并填写以下字段:

Where is my source code: C:/PCL_dependencies/boost-cmake
Where to build binaries: C:/PCL_dependencies/boost-cmake/build

在点击“Configure”之前,点击CMake gui右上角的“Add Entry”按钮,在弹出窗口中,填写如下字段:

Name  : LIBPREFIX
Type  : STRING
Value : lib

注意
如果您正在使用Visual Studio 2010,那么在单击“Configure”之前,还需要添加以下3个CMake条目:

Name  : BOOST_TOOLSET
Type  : STRING
Value : vc100
Name  : BOOST_COMPILER
Type  : STRING
Value : msvc
Name  : BOOST_COMPILER_VERSION
Type  : STRING
Value : 10.0

点击“Configure”按钮,CMake会告诉您二进制文件文件夹还不存在(例如,C:/PCL_dependencies/ boot - CMake /build),它会要求进行确认。
继续并确保在下一个窗口中选择正确的“生成器”。因此,我们选择“Visual Studio 9 2008”生成器。
在这里插入图片描述

注意
如果您想构建64位库,那么选择“Visual Studio 9 2008 Win64”作为生成器。

默认情况下,将构建所有Boost模块。如果您只想为PCL构建所需的模块,那么使用分号分隔的boost模块列表填充BUILD_PROJECTS CMake条目(默认设置为ALL):

BUILD_PROJECTS : system;filesystem;date_time;iostreams;tr1;serialization

另外,不要选中ENABLE_STATIC_RUNTIME复选框。然后,再次单击“Configure”。如果您得到一些与Python相关的错误,那么取消WITH_PYTHON复选框,然后再次单击“Configure”。现在,在CMake日志中,您应该看到如下内容:

Reading boost project directories (per BUILD_PROJECTS)

+ date_time
+ serialization
+ system
+ filesystem
+-- optional python bindings disabled since PYTHON_FOUND is false.
+ tr1

现在,点击“生成”。Visual Studio解决方案文件将在build文件夹中生成(例如C:/PCL_dependencies/boot-cmake/build)。打开Boost.sln文件,然后右键单击INSTALL project并选择Build。“INSTALL”项目将触发解决方案文件中所有项目的编译,然后将编译库和头文件一起安装到默认安装文件夹(例如C:/Program files (x86)/Boost)。

注意
如果在安装过程中出现一些错误,可能是由于微软Windows Vista或Seven的用户帐户控制(User Account Control)造成的。要解决这个问题,关闭Visual Studio,右键单击桌面上或开始菜单上的图标,然后选择“以管理员身份运行”。然后打开Boost.sln文件编译并安装项目。

  • Eigen

Eigen只是一个头文件库,所以您可以使用下载页面上提供的Eigen安装程序。

  • Flann

我们继续讲Flann,打开CMake-gui并填写字段:

Where is my source code: C:/PCL_dependencies/flann-1.7.1-src
Where to build binaries: C:/PCL_dependencies/flann-1.7.1-src/build

点击“配置”按钮,确保在下一个窗口中选择正确的“生成器”。您可以安全地忽略关于hdf5的任何警告消息。
现在,在我的机器上,我必须手动将BUILD_PYTHON_BINDINGS和BUILD_MATLAB_BINDINGS设置为OFF,否则它将不会继续进行下一步,因为它在抱怨找不到Python和Matlab。单击“高级模式”找到它们,或者单击CMake-gui窗口右上角的“添加条目”按钮添加这些条目。添加一个名为“BUILD_PYTHON_BINDINGS”的条目,将其类型设置为“Bool”,并将其值设置为未选中,对“BUILD_MATLAB_BINDINGS”条目执行相同的操作。
现在点击“配置”按钮,应该可以正常运行了。这将生成构建库所需的项目文件/makefile。现在只需转到C:/PCL_dependencies/flan -1.7.1-src/build,然后使用编译器继续编译。如果您使用Visual Studio,您将在该文件夹中找到Visual Studio解决方案文件。
Release模式编译安装项目。

注意
如果没有安装Python解释器,CMake可能不允许生成项目文件。要解决这个问题,可以安装Python解释器(https://www.python.org/download/windows/)或从C:/PCL_dependencies/flann-1.7.1-src/CMakeLists.txt中注释add_subdirectory(test)行。

  • QHull

用qhull路径设置CMake字段:

Where is my source code: C:/PCL_dependencies/qhull-2011.1
Where to build binaries: C:/PCL_dependencies/qhull-2011.1/build

在点击“Configure”之前,点击CMake gui右上角的“Add Entry”按钮,在弹出窗口中,填写如下字段:

Name  : CMAKE_DEBUG_POSTFIX
Type  : STRING
Value : _d

然后单击“Ok”。这个条目将定义一个后缀来区分调试库和发布库。
然后点击“配置”两次,然后点击“生成”。然后在调试和发布配置中构建安装项目。

  • VTK

注意
如果您想要构建PCL GUI工具,您需要在Qt支持下构建VTK,因此很明显,您需要在VTK之前构建/安装Qt。

要配置Qt,我们需要在您的系统上安装Perl。如果没有,请从http://strawberryperl.com下载并安装它。
要从源代码构建Qt,请从Qt网站下载源代码。将它解压到磁盘上的某个位置(C:\Qt\4.8.0,例如Qt 4.8.0版本)。然后打开Visual Studio命令提示符:
单击Start,指向所有程序,指向Microsoft Visual Studio 20XX,指向Visual Studio Tools,然后单击Visual Studio命令提示符(如果使用32位构建),或者Visual Studio x64 Win64命令提示符(如果使用64位构建)。
在命令提示符中,切换到Qt目录:

prompt> cd c:\Qt\4.8.0

我们使用开源许可证配置Qt的最小构建。如果您需要自定义构建,请根据需要调整选项:

prompt> configure -opensource -confirm-license -fast -debug-and-release -nomake examples -nomake demos -no-qt3support -no-xmlpatterns -no-multimedia -no-phonon -no-accessibility -no-openvg -no-webkit -no-script -no-scripttools -no-dbus -no-declarative

现在,让我们编译Qt:

prompt> nmake

现在,我们可以清除所有的中间文件来释放一些磁盘空间:

prompt> nmake clean

Qt的工作结束了!但是在构建VTK之前,我们需要设置一个环境变量:

QtDir = C:\Qt\4.8.0

然后,将%QtDir%\bin追加到PATH环境变量。
现在,使用CMake配置VTK(确保在设置环境变量之后重新启动CMake)。首先,使用VTK路径设置CMake字段,例如:、

Where is my source code: C:/PCL_dependencies/VTK
Where to build binaries: C:/PCL_dependencies/VTK/bin32

然后点击“配置”。选中此复选框,然后单击“Configure”:

VTK_USE_QT

通过查看qt_qmake_executecmake条目,确保CMake确实找到了Qt。如果没有,将其设置为qmake.exe的路径,例如C: \Qt\4.8.0\bin\qmake.exe,然后单击“Configure”。
如果找到Qt,勾选此复选框,点击“Configure”:

VTK_USE_QVTK_QTOPENGL

然后,单击“Generate”,打开生成的解决方案文件,并在debug和release中构建它。
就这样,我们完成了依赖关系!

  • GTest

如果您想要PCL测试(不建议用户使用),您需要编译googletest库(GTest)。像往常一样设置CMake字段:

Where is my source code: C:/PCL_dependencies/gtest-1.6.0
Where to build binaries: C:/PCL_dependencies/gtest-1.6.0/bin32

点击“配置”,设置以下选项:

BUILD_SHARED_LIBS                OFF
gtest_force_shared_crt           ON

生成并构建生成的项目。

编译PCL

现在已经构建并安装了PCL依赖项,您可以按照“从Windows源代码编译PCL”教程来构建PCL本身。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值