win10+CGAL4.11.1的编译与配置

开始用C++做点云数据处理以来,自己以小白的底子陆续编译了两个大型库PCL 和CGAL,心里面有了一些东西,想来分享。

PCL用过的人都明白,有allinone给配置环境节约了不少时间,但是CGAL就没有这么方便了,每个第三方库都需要自己来配。然后库与库之间还涉及与visual studio版本相互支持的问题。可以说一不注意就要重新配置环境。

CGAL4.11.1的编译与配置主要还是按照官网的顺序进行。https://www.cgal.org/download/windows.html

下面列出了我的第三方库列表:

     boost_1_59_0-msvc-12.0-32.exe

     libQGLViewer-2.7.1.zip

     qt-unified-windows-x86-3.0.2-online.exe(就是按照上述链接下载的32位适合vs2013的Qt开源软件)

   zlib(http://www.zlib.net/. In CGAL this library is used in the examples of the 3D Surface Mesh Generation Reference package)

    编译器不用说自然是vs2013,笔者编译的是32位的CGAL4.11.1。这个相对64位来说更方便,因为网上说编译64位CGAL,vs2013要Update5的更新版本才能正常编译所有的demo。(在编译器的选择上我建议最好使用vs2013,vs2010版本太老了,很多库都不支持,比如VTK等)

      补充三点:

         a. CGAL中的有部分第三方库都是针对特定程序,如需安装,可以上官网查看是否需要编译等。比如ZLIB就需要编译,安装的话按照boost安装过程来就可以。如果有什么错误,按照cmake_gui的提示一步步来就好了。

         b. zlib的安装,官网没有说明。打开installpackage可以看到里面有cmakelists文件,并且没有bin目录,说明需要用Cmake进行编译配置。编译成功过之后,打开环境变量,把ZLIB_INCLUDEDIR设置为C:\Program File(x86)\zlib\include,ZLIB_LIBRARYDIR设置为C:\Program File(x86)\zlib\lib。然后将C:\Program File(x86)\zlib\bin添加到Path下。这样设置之后,Cmake Configure之后就不会报错了。(整个过程是我自己琢磨的,都是心得体会啊)

          c.Qt的安装也需要注意。实验证明Qt5.5中msvc2013、msvc2012在vs2013中都可以用。

     下面说一些重要的事。

       1.PATH环境变量有两个,一个是当前用户变量下的,另外一个是系统变量下的。如下图所示。需要说明当前用户变量下的设置只限于windows当前用户账号,而系统变量不限用户。因此读者自己度量。

        win10+CGAL4.11.1的编译与配置_第1张图片

      2.libQGLViewer的编译与配置完全按照官网链接进行,不要被libQGLViewer的下载界面迷惑(不能说上面说的不对哈)。值得注意的是,启动x86 visual studio命令提示符的选择应如下图。还有就是最好将生成的QGLViewer2.dll、QGLViewerd2.dll拷贝到 建设CGAL 编译后生成的bin文件路径下,这样可以将它和CGAL生成的dll路径一起添加到环境变量path。个人认为这样最好,因为将他们拷贝到C:/windows/System32不能成功运行官网示例T3(亲身实践);

       win10+CGAL4.11.1的编译与配置_第2张图片

      3.到了建设CGAL一步时,

          BUILD_SHARED_LIBS一定要勾选,因为它决定生成动态链接库。

          CMAKE_INSTALL_PREFIX指的是工程INSTALL编译后生成的动态链接库三要素的文件目录;这一步生成路径对配置vs属性表很重要

          WITH_QGLViewer一定要勾选,WITH_OpenGL、WITH_ZLIB可以勾选(ZLIB按照普通第三方库编译配置即可,网上教程很多)

          这是一步是为了生成动态链接库。因此,我们直接编译Install部分,生成dll。

         其它默认即可

      4. 建立一个演示:使用的是Triangulation_3 demo,以下简称T3

           cmake之后会在输出框提示你没有发现tbb,其实tbb不是一定需要装,你只要在UNgrouped Entries下取消勾选LINK_WITH_TBB即可,它只是能够帮助提升可执行文件的运行速度。如果你感觉电脑反应慢,我建议您百度配置。具体方法笔者不详细描述了。

     5.最后在您执行.exe文件时,建议您直接双击运行,这样如果运行有问题,它会直接弹出提示框问题在哪里。QGLViewer2.dll在C:/windows/System32不能成功运行官网示例T3我就是这样发现的。建议:如果有参数输入,通过命令行运行;无参程序,直接运行。

     6.如果要想生成release win32版,在编译各种第三方库时都用release编译器生成即可。

     7.CGAL与anaconda有冲突

 

      经过PCL和CGAL配置后,我的感受是,C++中第三方库的配置说白了就是配置库:使用CMAKE配置生成DLL,将dll路径添加到环境变量path(动态链接库),INCLUDEDIR和LIBRARYDIR也要添加到环境变量。工程代码编译时,再此使用cmake配置工程属性各种路径(主要是头文件和lib路径)。当然这些都是第三方库源代码中有CMakeLists.txt文件。当然还可以配置属性变的方法。

      最后欢迎大家批评指正!   

你可能感兴趣的:(CGAL)