编译boost和CGAL

由于之前师兄给的boost和CGAL库全是MD的,而我现在的工程又都是MT的,不得已还是得自己重新学一下怎么编译。

1. boost 编译

我的工程都是Win32的,所以编译的boost应该也是32的(当时因为系统是64的又编译了64位boost但是后面会报错)。

我的vs版本是vs13,因此使用不了>1.6版本的boost,看网上需要update5。所以最终用的是boost1.55.

我所有的工程都是静态链接库,所以boost编译时也要编译静态的链接库,关于静态动态链接库,参考这篇文章https://blog.csdn.net/yasi_xi/article/details/8660549

boost的编译参考这篇 https://blog.csdn.net/zengraoli/article/details/70187556

 

Boost库各个版本下载地址:https://sourceforge.net/projects/boost/files/boost-binaries/

我下载的是boost_1_55_0-msvc-12.0-64.exe,编译时

编译boost和CGAL

编译boost和CGAL

③运行以下代码(CGAL只需要system和thread所以就编译了这俩,runtime-link 要求static是因为我用的是静态链接库,如果是动态就要写成shared,编译debug和release)

bjam stage --toolset=msvc-12.0 --with-system --with--thread --stagedir="binvc12-x32" link=static runtime-link=static threading=multi debug release

④需要更改环境变量 此电脑 右键->属性->高级系统设置->高级->环境变量

我是在系统变量中加上BOOST_INCLUDEDIR、BOOST_ROOT、BOOST_LIBRARYDIR 这三个环境变量

编译boost和CGAL

 2. CMAKE 编译CGAL编译boost和CGAL

 首先简单地设置源码和build的路径

如果就这样编译的话它会生成MD动态链接库

为了生成静态链接库,需要:

①name下面的BUILD_SHARED_LIBS不能勾选

②CGAL下的CMakeLists.txt加上这两行

set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /MT")
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /MTd")

③这样generate出来的sln在编译的时候还是会报错说 Mixing a dll boost library with a static runtime is a really bad idea.

因为它定义了预处理器BOOST_ALL_DYN_LINK(如果有BOOST_DYN_LINK应该也一样),还是用动态链接boost,把这个预处理器去掉再重新编译就OK了

当时还一直报错的原因是CGAL-4.11build2includeCGALcompiler_config.h的文件,我include的路径忘记改了所以还是用的以前的其中设置了一些宏。一定要记得检查一下更新之后的路径。

 3.在我的工程中使用CGAL

需要一通添加.lib和.h文件

例如Debug模式:

C/C++->常规->附加包含目录

编译boost和CGAL

 

②链接器->常规->附加库目录

编译boost和CGAL

输入->附加依赖项

编译boost和CGAL

③由于用到了libgmp-10.lib这是CGAL中的,他还有一个相应的.dll文件,于是在配置属性->调试->环境中加上dll路径编译boost和CGAL

④这里编译还是会出现一堆关于boost的报错,后来发现是boost用的64位的,于是就重新编译了,还有在c/c++->预处理器->预处理器定义中加了一个BOOST_ERROR_CODE_HEADER_ONLY

 

原文链接: https://www.cnblogs.com/amarr/p/9479687.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    编译boost和CGAL

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/279434

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月15日 上午4:11
下一篇 2023年2月15日 上午4:12

相关推荐