mac下使用clion构建boost库

使用brew install boost

完成后发现boost被安装在在/usr/local/Cellar/boost下

jetbrain给出的指导意见

https://www.jetbrains.com/help/clion/quick-cmake-tutorial.html

==================

=============

http://blog.csdn.net/to_be_better/article/details/53967198

自己设定boost头文件和库文件位置

-

cmake_minimum_required(VERSION 3.6)

#设置项目名称

project(demo)

set(CMAKE_CXX_STANDARD 11)

set(BOOST_ROOT "/usr/local/include/boost")

#添加头文件搜索路径

include_directories(/usr/local/include)

#添加库文件搜索路径

link_directories(/usr/local/lib)

#用于将当前目录下的所有源文件的名字保存在变量 DIR_SRCS 中

aux_source_directory(. DIR_SRCS)

add_executable(demo ${DIR_SRCS})

#在这里根据名字boost_thread去寻找libboost_thread.a文件

target_link_libraries(demo boost_thread boost_system)

==============

=============

https://stackoverflow.com/questions/28761323/how-to-include-external-library-boost-into-clion-c-project-with-cmake

让Clion自动寻找

cmake_minimum_required(VERSION 2.8.4)

project(BoostTest)

message(STATUS "start running cmake...")

find_package(Boost 1.57.0 COMPONENTS system filesystem REQUIRED)

if(Boost_FOUND)

message(STATUS "Boost_INCLUDE_DIRS: ${Boost_INCLUDE_DIRS}")

message(STATUS "Boost_LIBRARIES: ${Boost_LIBRARIES}")

message(STATUS "Boost_VERSION: ${Boost_VERSION}")

include_directories(${Boost_INCLUDE_DIRS})

endif()

add_executable(BoostTest main.cpp)

if(Boost_FOUND)

target_link_libraries(BoostTest ${Boost_LIBRARIES})

endif()

===========

=============

mac下从源码编译boost库文件

下载boost
点击链接下载boost_1_61_0.tar.bz2

解压

tar jxvf boost_1_61_0.tar.bz2

运行bootstrap.sh脚本

sh bootstrap.sh

编译boost

./b2

输出说明
编译完成后

  • 头文件在当前目录下的boost中。
  • lib库在stage/lib下

作者:byd913

链接:http://www.jianshu.com/p/7ab8ac4cb0ad

來源:简书

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

另外可以参考这里

http://www.cnblogs.com/linjk/p/6052886.html

=============

=============

这里有一个完整的CMakeList.txt文件的编写方法

http://blog.csdn.net/pyang1989/article/details/41725747

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

================

===============

我的可以运行的例子:

cmake_minimum_required(VERSION 3.6)
project(boost_All) message(STATUS "start running cmake...")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
include_directories(./client_asio)
include_directories(./server_asio) set(SOURCE_FILES server_asio/main.cpp)
add_executable(boost_All ${SOURCE_FILES}) set(Boost_INCLUDE_DIR /Users/lizhen/src_github/boost_1_65_1/)
#set(boost_LIBRARIES /Users/lizhen/src_github/boost_1_65_1/stage/lib)
set(Boost_COMPONENTS Thread Filesystem Regex Serialization Signals System Timer REQUIRED) set(Boost_USE_STATIC_LIBS ON)
set(Boost_USE_MULTITHREADED ON)
set(Boost_USE_STATIS_RUNTIME OFF) find_package(Boost COMPONENTS ${Boost_COMPONENTS})
if (Boost_FOUND)
message(STATUS "Boost_INCLUDE_DIRS: ${Boost_INCLUDE_DIRS}")
message(STATUS "Boost_LIBRARIES: ${Boost_LIBRARIES}")
message(STATUS "Boost_VERSION: ${Boost_VERSION}")
include_directories(${Boost_INCLUDE_DIR})
target_link_libraries(boost_All ${Boost_LIBRARIES})
endif()

mac下使用clion构建boost库的更多相关文章

  1. mac下svn问题——“.a”(静态库)文件无法上传解决

    mac下svn问题——“.a”(静态库)文件无法上传解决    “.a”(静态库)文件无法上传(svn工具:Versions)          网上查询了一下,说是Xcode自带的svn和Versi ...

  2. windows下编译和安装boost库

    boost是一个功能强大.构造精巧.跨平台.开源并且完全免费的C++程序库. 获取方式 boost提供源码形式的安装包,可以从boost官方网站下载,目前最新版本是1.59.0. 本机上正好有boos ...

  3. mac下用clion进行sdl2游戏开发de环境搭建

    1. 故事背景 想从unity转unreal了,于是要使用c++进行开发.unreal引擎那么大,每次打开,我的小本都嗡嗡嗡的,想着不如用个轻量一些的引擎先开发吧,核心代码独立出来,到时候如果真要移植 ...

  4. Mac下python初学之Image库(PIL)

    Mac下python 使用Image库 安装PIL,下载http://www.pythonware.com/products/pil/ 解压PIL源码包,阅读README知道需要使用python se ...

  5. VS2008下直接安装使用Boost库1.46.1版本号

    Boost库是一个可移植.提供源码的C++库,作为标准库的后备,是C++标准化进程的发动机之中的一个. Boost库由C++标准委员会库工作组成员发起,当中有些内容有望成为下一代C++标准库内容.在C ...

  6. VS2008下直接安装使用Boost库1.46.1版本

    Boost库是一个可移植.提供源代码的C++库,作为标准库的后备,是C++标准化进程的发动机之一. Boost库由C++标准委员会库工作组成员发起,其中有些内容有望成为下一代C++标准库内容.在C++ ...

  7. boost::VS2017下编译和配置boost库

    环境: win10  vs2017  v141 1.下载  boost_1_70_0.zip. 2.以管理员方式打开 3. bootstrap.bat 4.编译64位库 b2.exe stage -- ...

  8. Mac下配置PHP支持GD库FreeType

    一句话脚本 curl -s http://php-osx.liip.ch/install.sh | bash -s 5.6 记得要FQ哦. 或者下面代码保存成.sh ,代码从http://php-os ...

  9. linux下编译安装boost库

    linux下编译安装boost库 linux下编译安装boost库 1.下载并解压boost 1.58 源代码 下载 解压 2.运行bootstrap.sh 3.使用b2进行构建 构建成功的提示 4. ...

随机推荐

  1. docker官方文档翻译4

    转载请标明出处: https://blog.csdn.net/forezp/article/details/80186178 本文出自方志朋的博客 第四篇:Swarms 准备工作 安装Docker版本 ...

  2. html5语义化标签——回顾

    html5 头部结构   <!doctype html>    <meta charset=“utf-8”/> <header></header> 页眉 ...

  3. js关于if(''==0)

    在js当中,如下注意 if(''==0){ alert("空字符代表false"); } 空字符串代表false 0代表false false==false 结果就为true了

  4. 第13届景驰-埃森哲杯广东工业大学ACM程序设计大赛--I-填空题

    链接:https://www.nowcoder.com/acm/contest/90/I 来源:牛客网 1.题目描述 牛客网是是一个专注于程序员的学习和成长的专业平台,集笔面试系统.课程教育.社群交流 ...

  5. Percona-Tookit工具包之pt-kill

      Preface       Sometimes,we are determined to kill some MySQL connections which are occupying huge ...

  6. 关于Ext.js和Ext.Net的杂谈

    最近几年比较火的前端js框架extjs 算是其中的佼佼者.统一的UI设计,强悍的组件及丰富的插件,对浏览器良好的兼容性等优点使得许多公司使用Extjs,同时也使得无数程序猿开始研究这个玩意也包括我在内 ...

  7. 部署node api的二三事

    当接到node开发node api的时候,我就想用docker来部署,众所周知,node的版本更新迭代很快.很多以前需要babel后才能采用的方法正在不断被node 原生的支持.如果随便更换生产服务器 ...

  8. PHP中判断变量为空的几种方法小结

    isset  主要用来判断变量是否被初始化过empty  可以将值为 "假"."空"."0"."NULL"." ...

  9. BGP路由控制属性

    控制BGP路由概述: BGP与IGP不同,其着跟点主要在于不同的AS之间控制路由的传播和选择最佳路由 通过修改BGP基本属性可以实现基本的BGP路由控制和最佳路由的选择 引入其他路由协议发现的路由时. ...

  10. 两种方法实现Python二分查找算法

    两种方法实现Python二分查找算法   一. ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 arr=[1,3,6,9,10,20,30] def findnumber( ...