如何使用Cmake链接到boost库?
我的环境是Windows7,CLion,MinWG。我正在尝试使用Boost。 我有一个CMakeLists.txt文件,但有很多问题…:D如何使用Cmake链接到boost库?,cmake,g++,Cmake,G++,我的环境是Windows7,CLion,MinWG。我正在尝试使用Boost。 我有一个CMakeLists.txt文件,但有很多问题…:D cmake_minimum_required(VERSION 2.8.4) project(untitled) set(BOOST_INCLUDEDIR "${BOOST_INCLUDEDIR} C:\\MinGW\\include\\boost") set(Boost_DIR "${Boost_DIR} C:\\MinGW\\include\\boos
cmake_minimum_required(VERSION 2.8.4)
project(untitled)
set(BOOST_INCLUDEDIR "${BOOST_INCLUDEDIR} C:\\MinGW\\include\\boost")
set(Boost_DIR "${Boost_DIR} C:\\MinGW\\include\\boost")
set(CMAKE_LIBRARY_PATH "${CMAKE_LIBRARY_PATH} C:\\MinGW\\lib")
set(CMAKE_INCLUDE_PATH "${CMAKE_INCLUDE_PATH} C:\\MinGW\\include\\boost")
set(BOOST_USE_STATIC_LIBS ON)
set(BOOST_USE_MULTITHREADED ON)
#set(BOOST_ADDITIONAL_VERSIONS "1.44" "1.44.0")
find_package(BOOST COMPONENTS thread date_time program_options filesystem system REQUIRED)
if(Boost_FOUND)
message(STATUS "Boost znaleziony")
endif()
include_directories(${BOOST_INCLUDEDIR})
include_directories(C:\\MinGW\\include)
LINK_DIRECTORIES(${Boost_LIBRARY_DIRS})
find_package(Threads REQUIRED)
#if (WIN32 AND __COMPILER_GNU)
# # mingw-gcc fails to link boost::thread
add_definitions(-DBOOST_THREAD_USE_LIB)
#endif (WIN32 AND __COMPILER_GNU)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
set(SOURCE_FILES main.cpp)
add_executable(untitled ${SOURCE_FILES})
target_link_libraries(untitled ${Boost_LIBRARIES})
但产出是:
undefined reference to `boost:: ...
我做错了什么?您可能没有正确提供包含路径 这是我的项目中的一个工作片段。在
Windows
和Linux
上测试。我正在链接系统
,线程
和文件系统
模块。注意Boost定义的变量,例如Boost\u INCLUDE\u DIRS
find_package( Boost COMPONENTS system thread filesystem REQUIRED )
include_directories(
${CMAKE_CURRENT_BINARY_DIR}
${CMAKE_CURRENT_SOURCE_DIR}
${Boost_INCLUDE_DIRS}
)
target_link_libraries(target_app
${Boost_LIBRARIES}
)