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 multithreading10 11 # windows 下设置这两个路径,find_package才能找到Boost12 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:\MathxH\3rd-party\boost_1_67_0\bin\static -DBOOST_LIBRARYDIR=D:\MathxH\3rd-party\boost_1_67_0\bin\static\lib -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