zoukankan      html  css  js  c++  java
  • Clion使用MinGW编译好的boost库

    MinGW编译Boost库可以参考我之前写的编译Boost的文章。

    以下是cmake链接boost静态库的配置:

     1 cmake_minimum_required(VERSION 3.8)
     2 
     3 project(clions)
     4 
     5 set(CMAKE_CXX_STANDARD 14)
     6 set(CMAKE_INSTALL_PREFIX ${CMAKE_CURRENT_SOURCE_DIR}/Install CACHE PATH "Install here" FORCE)
     7 
     8 set (Boost_USE_STATIC_LIBS ON) # enable dynamic linking
     9 set (Boost_USE_MULTITHREAD ON)  # enable multithreading
    10 
    11 # windows 下设置这两个路径,find_package才能找到Boost
    12 SET(CMAKE_INCLUDE_PATH ${CMAKE_INCLUDE_PATH} "D:/MathxH/3rd-party/boost_1_67_0/bin/static/include/boost-1_67")
    13 SET(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH} "D:/MathxH/3rd-party/boost_1_67_0/bin/static/lib")
    14 
    15 
    16 
    17 find_package(Boost)
    18 
    19 if(NOT Boost_FOUND)
    20     message("not found boost package")
    21 else()
    22     message("found boost package")
    23     include_directories(${Boost_INCLUDE_DIR})
    24     LINK_DIRECTORIES(${CMAKE_LIBRARY_PATH})
    25   ## ADD_DEFINITIONS("-DHAS_BOOST")
    26 
    27     message("includes: ${Boost_INCLUDE_DIRS}") # 这个可以打印出值来
    28     message("libs: ${Boost_LIBRARIES}") #这个变量在windows下找不到,为空
    29 endif()
    30 
    31 if(USE_32BITS)
    32    message("build x86 target")
    33    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m32")
    34 else()
    35     message("build x64 target")
    36     set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m64")
    37 endif(USE_32BITS)
    38 
    39 add_executable(clions main.cpp)
    40 
    41 if(Boost_FOUND)
    42 
    43     if(CMAKE_BUILD_TYPE MATCHES "Debug")
    44         message("linking debug lib")
    45         target_link_libraries(clions libboost_filesystem-mgw81-mt-sd-x64-1_67.a libboost_system-mgw81-mt-sd-x64-1_67.a)
    46     endif()
    47 
    48     if(CMAKE_BUILD_TYPE MATCHES "Release")
    49         message("linking release lib")
    50         target_link_libraries(clions libboost_filesystem-mgw81-mt-s-x64-1_67.a libboost_system-mgw81-mt-s-x64-1_67.a)
    51     endif()
    52 
    53 endif()
    54 
    55 install(TARGETS clions DESTINATION debug CONFIGURATIONS Debug)
    56 install(TARGETS clions DESTINATION release CONFIGURATIONS Release)

    如果配置好Clion的ToolChain,它会自动运行以下cmake命令行,生成makefile:

    cmake.exe -DCMAKE_BUILD_TYPE=Release -DUSE_32BITS=0 -DBOOST_ROOT=D:MathxH3rd-partyoost_1_67_0instatic -DBOOST_LIBRARYDIR=D:MathxH3rd-partyoost_1_67_0instaticlib -G "CodeBlocks - MinGW Makefiles" D:clions

    references:
    https://www.cnblogs.com/magic-428/p/9144492.html
    https://www.jetbrains.com/help/clion/2018.1/quick-cmake-tutorial.html?utm_campaign=CL&utm_content=2018.1&utm_medium=link&utm_source=product#d323175e256
    https://cmake.org/cmake/help/v3.10/command/find_package.html
    https://cmake.org/cmake/help/v3.0/module/FindBoost.html
    https://stackoverflow.com/questions/6646405/how-do-you-add-boost-libraries-in-cmakelists-txt


    
    
    
  • 相关阅读:
    使用node.js搭建一个简单的后台服务
    node.js连接MySQL数据库
    js将date对象转换为指定格式
    配置angular2运行环境
    简单AJAX请求JSon数据
    正则表达式
    javascript typeof 和 instanceof 的区别和联系
    map和reduce函数的使用
    Github 上管理项目
    微服务资料
  • 原文地址:https://www.cnblogs.com/foohack/p/9397768.html
Copyright © 2011-2022 走看看