Mac下boost的安装与使用 Install and use boost library on Mac
Boost库的介绍:http://www.boost.org/
要想在mac上使用boost库写应用程序,首先需要安装boost。
安装步骤:参考官网教程http://www.boost.org/doc/libs/1_57_0/more/getting_started/unix-variants.html
1.下载 Download boost_1_57_0.tar.bz2.
2.解压
控制台操作命名:tar --bzip2 -xf /path/to/boost_1_57_0.tar.bz2
也可以自行双击tar.bz2解压然后移动到想放的目录。
3.一部分组件在完成1和2以后就能直接用,因为很多是直接写在hpp的inline函数,但是要利用其它功能,需要build boost库里面的各个组件(步骤4-6)
4.进入解压后的目录 cd path/to/boost_1_57_0
5.输入./bootstrap.sh —prefix=“安装目录” 输入时去掉引号,这里输入的是/Users/yang/DEVELOPMENT/ProgramFiles/BoostInstallation
6.输入./b2 install 大约等待10分钟
备注:如果第5步直接输入./bootstrap.sh 则默认会安装到/usr/local下面的include和lib目录下,而/usr是在Macintosh HD下面的一个隐藏目录,
虽然可以在finder里面输入路径。最好还是安装在一个默认显示的目录。
到此boost则安装到了电脑上,可以使用它进行编程了
下面分别介绍在Mac下使用xcode和cmake利用boost编程的方法。
Mac 使用xcode创建boost应用程序
=========================================================
1.用xcode创建控制台应用程序,写好代码后,在项目->build Settings->Search Paths->Header Search Paths和Library Search Paths里面分别添加上述教程里面生成的include和lib目录
2.在项目->build Phases->Link Library With Libraries里面点加号,选择option,找到上述lib目录,选中里面以.a结尾的文件,添加即可
cmake 创建boost应用程序
=========================================================
1.写好cpp文件
2.写CmakeList.txt,注意里面
set(BOOST_COMPONENTS IOStreams Thread Filesystem Regex Serialization Signals System Timer)
find_package(Boost 1.57.0 COMPONENTS ${BOOST_COMPONENTS})
IOStreams Thread之类均为Boost的各个组件,完整的在lib目录下,例如libboost_iostreams.a 则iostreams则为组件名,不区分大小写。这里配置不正确的话,cmake能通过,make的时候出错Undefined symbols for architecture x86_64
完整CmakeList.txt:
cmake_minimum_required (VERSION 2.6) project(Boost) add_executable(Boost Boost.cpp) set(Boost_INCLUDE_DIRS “/Users/yang/DEVELOPMENT/ProgramFiles/Boostinstallation/include”) set(Boost_LIBRARIES “/Users/yang/DEVELOPMENT/ProgramFiles/Boostinstallation/lib”) set(BOOST_COMPONENTS IOStreams Thread Filesystem Regex Serialization Signals System Timer) set(Boost_USE_STATIC_LIBS ON) set(Boost_USE_MULTITHREADED ON) set(Boost_USE_STATIC_RUNTIME OFF) find_package(Boost 1.57.0 COMPONENTS ${BOOST_COMPONENTS}) if(Boost_FOUND) include_directories(${Boost_INCLUDE_DIRS}) target_link_libraries(Boost ${Boost_LIBRARIES}) endif()这样便可以依次执行cmake和make命令生成可执行应用程序了。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。