zoukankan      html  css  js  c++  java
  • C++: Mac上安装Boost库并使用CLion开发

    1.下载安装Boost库

    官网下载最新版本1.65.0:http://www.boost.org/users/history/version_1_65_0.html
    选择UNIX版本:

    img

    下载后解压cd至解压文件夹下

    cd /Users/jimmy/Downloads/boost_1_65_0
    

    执行

    ./booststrap.sh
    

    成功后执行

    sudo ./b2 install
    

    几分钟之后编译安装完成
    头文件位于 /usr/local/include/boost
    库路径位于 /usr/local/lib

    2.使用

    使用CLion新建一个C++项目
    项目名: ttt
    CMakeList.txt
    CMake查找连接上Boost库,要不然编译会报错,找不到boost

    cmake_minimum_required(VERSION 3.8)
    project(ttt)
    
    set(CMAKE_CXX_STANDARD 11)
    
    find_package(Boost 1.65.0 COMPONENTS system filesystem REQUIRED)
    include_directories(${Boost_INCLUDE_DIRS})
    
    set(SOURCE_FILES main.cpp)
    add_executable(ttt ${SOURCE_FILES})
    
    target_link_libraries(ttt ${Boost_LIBRARIES})
    

    main.cpp
    include必须指定boos某个头文件

    #include <iostream>
    #include <boost/version.hpp>
    
    using namespace std;
    
    int main() {
        cout << "Hello, World!" << endl;
        cout << "Boost版本:" << BOOST_VERSION << endl;
        return 0;
    }
    

    执行成功

    img

    3. 以下是两种编译方法

    3.1 自己设定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)
    

    3.2 让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()
    
    
  • 相关阅读:
    网线接线分类
    MongoDB修改用户密码
    win10计算器和商店英文改中文
    电脑微信双开
    ajax
    get和post的区别
    javascript中各种继承方式的优缺点
    原型
    高阶函数的封装
    深浅拷贝
  • 原文地址:https://www.cnblogs.com/kolane/p/12071055.html
Copyright © 2011-2022 走看看