Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Cmake链接到boost库?_Cmake_G++ - Fatal编程技术网

如何使用Cmake链接到boost库?

如何使用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

我的环境是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\\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}
)