C++ cmake的find_包找不到boost
我已经参考了这一点,并制作了一个包含以下数据的CMakeLists.txt:C++ cmake的find_包找不到boost,c++,boost,cmake,C++,Boost,Cmake,我已经参考了这一点,并制作了一个包含以下数据的CMakeLists.txt: cmake_minimum_required(VERSION 2.8) SET(TARGET integrity_scanner) message("\nBuilding ${TARGET}") project (${TARGET}) if (UNIX) message(STATUS "Setting GCC flags") set (CMAKE_CXX_FLAG
cmake_minimum_required(VERSION 2.8)
SET(TARGET integrity_scanner)
message("\nBuilding ${TARGET}")
project (${TARGET})
if (UNIX)
message(STATUS "Setting GCC flags")
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g3 -Wall -O0")
else()
message(STATUS "Setting MSVC flags")
#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /EHc-")
endif ()
include_directories ("${PROJECT_SOURCE_DIR}")
set(Boost_USE_STATIC_LIBS ON)
set(Boost_USE_MULTITHREADED ON)
set(Boost_USE_STATIC_RUNTIME OFF)
set(BOOST_ROOT C:/boost_1_55_0_dyn)
find_package(Boost 1.55.0 COMPONENTS thread)
SET(SOURCE
IntegrityScanner.cpp
)
SET(HEADERS
IntegrityScanner.h ../BaseApplication.hpp
)
if(Boost_FOUND)
add_definitions(-DDLL_EXPORTS)
add_definitions(-DBOOST_ALL_DYN_LINK)
include_directories("..\\..\\..\\ext_library\\zmq\\zeromq-4.0.3\\include")
include_directories("..\\..\\..\\ext_library\\zmq\\czmq\\czmq-2.1.0\\include")
link_directories("..\\..\\..\\ext_library\\zmq\\zeromq-4.0.3\\lib\\Win32\\Debug")
link_directories("..\\..\\..\\ext_library\\zmq\\czmq\\czmq-2.1.0\\lib\\Win32\\DebugDLL")
include_directories(${Boost_INCLUDE_DIRS})
LINK_DIRECTORIES(${Boost_LIBRARY_DIRS})
add_library(${TARGET} SHARED ${SOURCE} ${HEADERS})
target_link_libraries(${TARGET} ${Boost_LIBRARIES} czmq libzmq)
else()
message(STATUS "Boost_FOUND False")
endif()
即使我已经设置了BOOST\u ROOT,它仍然失败,并给出BOOST find False消息。我做错了什么
编辑:我发现将Boost\u USE\u STATIC\u LIBS设置为OFF可以解决问题。但是我必须把它打开。这里可能有什么问题?您的目录结构需要如下所示:
c:/boost/boost_1_55_0
BOOST_ROOT是一个环境变量,设置为c:/BOOST我已经找到了这段代码不起作用的原因。由于我将上的赋值给Boost\u USE\u STATIC\u LIBS,结果是find\u包将查找libboost\u thread-vc100-mt-1\u 55,它不会找到,因为构建Boost将提供共享的库,如本文所述。见下图: