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. JS JavaScript事件循环机制

    区分进程和线程 进程是cpu资源分配的最小单位(系统会给它分配内存) 不同的进程之间是可以同学的,如管道.FIFO(命名管道).消息队列 一个进程里有单个或多个线程 浏览器是多进程的,因为系统给它的进 ...

  2. 字段中有空的时候 进行逻辑运算,mysql 与 oracle 处理函数IFNULL() 与 nvl() ,选取NULL 值 。

    mySQL数据库: SELECT id_p,IFNULL(math,0)+IFNULL(english,0) 总分 from mytest_brian1 Oracle 数据库: select  id_ ...

  3. etcd客户端c#

    etcd是什么东西就不介绍了,自己网上搜索,简单说就是一个分布式K/V存储系统: 由于它是go语言写的,没有其它客户端,找到一个java的. 出于方案积累原因,写了c#版本,可以使用.c#版本是基于e ...

  4. ETO的公开赛T4《对抗水滴》 题解(BY 萌萌哒123456 )

    题意: 给你一个\(n*n\)的矩阵A,其中有\(T\)个元素不为零.定义矩阵内元素\((x,y)\)的能量值 \(E[x][y]=\sum_{i=1}^{x}\sum_{j=1}^{y}[A[i][ ...

  5. ABAP术语-Company Code

    Company Code 原文:http://www.cnblogs.com/qiangsheng/archive/2008/01/16/1040816.html The smallest organ ...

  6. vuex重置所有state(可定制)

    在正式场景中我们经常遇到一个问题,就是登出页面或其他操作的时候,我们需要重置所有的vuex,让其变为初始状态,那么,就涉及到了多种方法:1.页面刷新: window.location.reload() ...

  7. css公共类

    /*iOS弹性滚动*/ .scrolling{ position: absolute; width: 100%; height:100%; overflow-x:hidden; overflow-y: ...

  8. vue路由回退判断

    在页面一开始加上一个全局的函数: activated: function () { this.$setgoindex() } 这个函数是这样的,判断当前页面的历史记录是不是小于等于1,如果小于等于1, ...

  9. Flask之endpoint错误View function mapping is overwriting an existing endpoint function: ***

    最近在学习Flask, 其中遇到了一个错误, 发现这个问题和Flask, 路由有关系, 所以就记了下来 错误代码: from flask import Flask, render_template, ...

  10. 文件 I/O缓冲流

    import java.io.File; import java.io.Writer; import java.util.StringTokenizer; import java.io.Reader; ...