码迷,mamicode.com
首页 > 其他好文 > 详细

CGAL 安装编译过程图文记录

时间:2015-07-15 14:40:26      阅读:770      评论:0      收藏:0      [点我收藏+]

标签:

先说一下我的系统是Win8.1 64位 + VS2013 + Qt5.4.2 x64 with opengl。好吧,上CGAL 官方网站 http://www.cgal.org 下载软件包。

我下载的是CGAL-4.6-Setup.exe,当时的最新版本。下载后直接运行,一路next,来到第一个需要我们选择的地方

技术分享

HTML Manuals 比较大,我没有选。文档官方上都是有的,如果需要本机文档,以后单独下载文档安装也是可以的。

然后:

技术分享

选择64位,Next,安装位置在C:\Program Files\CGAL-4.6,好的,一路next到完成(中间会下载两个东东,如果没有选HTML Manuals的话,

很快就结束安装了)。安装完后提示设置环境变量和path路径,照做

在我的机子上Vs 2013 ,Qt 5.4.2和CMake(我用的是CMake-3.2.2-win32-x86) 是提前安装了的,还差一个boost,上官网,http://www.boost.org/

下载boost 1.58.0,解压编译boost,注意编译成64位的,一开始我搞错了,编译成了32位的,最后编译CGAL时会出现3个链接错误。

1 error LNK2019: 无法解析的外部符号 "class boost::system::error_category const & __cdecl boost::system::system_category(void)" (?system_category@system@boost@@YAAEBVerror_category@12@XZ),该符号在函数 "void __cdecl boost::system::`dynamic initializer for ‘native_ecat‘‘(void)" (??__Enative_ecat@system@boost@@YAXXZ) 中被引用????C:\Program Files\CGAL-4.6\build\src\CGAL\all_files.obj????CGAL

2 error LNK2019: 无法解析的外部符号 "class boost::system::error_category const & __cdecl boost::system::generic_category(void)" (?generic_category@system@boost@@YAAEBVerror_category@12@XZ),该符号在函数 "void __cdecl boost::system::`dynamic initializer for ‘errno_ecat‘‘(void)" (??__Eerrno_ecat@system@boost@@YAXXZ) 中被引用????C:\Program Files\CGAL-4.6\build\src\CGAL\all_files.obj????CGAL

3 error LNK2019: 无法解析的外部符号 "void __cdecl boost::detail::set_tss_data(void const *,class boost::shared_ptr<struct boost::detail::tss_cleanup_function>,void *,bool)" (?set_tss_data@detail@boost@@YAXPEBXV?$shared_ptr@Utss_cleanup_function@detail@boost@@@2@PEAX_N@Z),该符号在函数 "public: __cdecl boost::thread_specific_ptr<int>::~thread_specific_ptr<int>(void)" (??1?$thread_specific_ptr@H@boost@@QEAA@XZ) 中被引用????C:\Program Files\CGAL-4.6\build\src\CGAL\all_files.obj????CGAL

如果出现同样的错误,可能是boost库32位和64位的问题,可以通过重新编译相应的boost库解决。

简单说一下boost的编译:

我的boost是解压在C:\Doc\Dev\boost_1_58_0的,运行VS2013 x64 Native Tools Command Prompt.

Cd C:\Doc\Dev\boost_1_58_0

运行 bootstrap.bat

技术分享

然后运行 b2.exe stage --toolset=msvc-12.0 --without-graph --without-graph_parallel --without-math --without-mpi --without-serialization

--without-wave --without-test --without-program_options --without-serialization --without-signals --stagedir=".\bin\vc12_x64" link=static

runtime-link=shared threading=multi debug release address-model=64

注意最后面的address-model=64

编译用了12分钟,编译后,设置环境变量 BOOST_ROOT和BOOST_LIBRARYDIR(用户变量还是系统变量随意吧)

技术分享

运行CMake,设置source code为 C:/Program Files/CGAL-4.6,binaries 为 C:/Program Files/CGAL-4.6/build

技术分享

点击 Configure,出现错误:

….

Could not find the following Boost libraries:
boost_thread
boost_system

在网上找一个解决方法:把libboost_system-vc120-mt-1_58.lib改名为boost_system-vc120-mt-1_58.lib,这个办法编译时最后还是会出错。

主要原因在于我的boost是静态编译的,应该这样修改:

技术分享

点Configure

技术分享

出现 Configuring done。然后点击Generate,出现Generating done,就可以了。

然后以管理员身份启动VS2013,打开"C:\Program Files\CGAL-4.6\build\CGAL.sln"

直接编译解决方案,成功。

最后查了一下,CGAL 使用的开源协议是GPLv3,另外也有商业许可。更多信息可以查看http://www.cgal.org/license.html

相关软件百度云下载 http://pan.baidu.com/s/1eQwDEWq 密码: c28d

CGAL 安装编译过程图文记录

标签:

原文地址:http://www.cnblogs.com/seyonola/p/4648054.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!