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:\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