您的位置:首页 > 博客中心 > 网络系统 >

Mac下boost的安装与使用 Install and use boost library on Mac

时间:2022-04-03 09:42

Boost库的介绍:

要想在mac上使用boost库写应用程序,首先需要安装boost。

安装步骤:参考官网教程


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命令生成可执行应用程序了。

热门排行

今日推荐

热门手游