I have some troubles with CMake and Boost library. I have the following error :
CMake Error at C:/Program Files (x86)/CMake
2.8/share/cmake-2.8/Modules/FindBoost.cmake:1111 (message): Unable to find the requested Boost libraries.
Boost version: 1.55.0
Boost include path: C:/local/boost_1_55_0
Could not find the following static Boost libraries:
boost_system
boost_date_time
boost_regex
No Boost libraries were found. You may need to set BOOST_LIBRARYDIR
to the directory containing Boost libraries or BOOST_ROOT to the
location of Boost. Call Stack (most recent call first):
CMakeLists.txt:10 (find_package)
-- Configuring incomplete, errors occurred!
I did everything I found to internet in my CMakeLists.txt but it's not working, I don't understand. I'm using Windows 8 with Visual Studio 12 and Boost is installed in the default directory. (C:/local/boost_1_55_0)
Here my CMakeLists.txt :
cmake_minimum_required(VERSION 2.6)
project (server)
set(BOOST_ROOT "c:\\local\\boost_1_55_0")
set (Boost_USE_STATIC_LIBS ON) set (Boost_MULTITHREADED ON) set
(Boost_USE_STATIC_RUNTIME OFF)
find_package(Boost 1.55 COMPONENTS system date_time regex REQUIRED)
add_definitions(${Boost_LIB_DIAGNOSTIC_DEFINITIONS})
set(SRCS main.cpp Server.cpp Client.cpp)
set(HEADERS Server.h Client.h)
include_directories(${Boost_INCLUDE_DIR})
add_executable(babel_server ${SRCS} ${HEADERS})
target_link_libraries(babel_server ${Boost_LIBRARIES})
Anyone can help me please ?
Thanks
I guess your compiled libraries is not in your BOOST_ROOT/lib/ folder. In this case, you need to set your lib folder directory path.
set(BOOST_LIBRARYDIR ${BOOST_ROOT}/stage/lib/)
or
set(BOOST_LIBRARYDIR path/to/your/lib/folder)
I have same problem
solved by using command
bjam install --prefix="<your boost install folder>" --with-system --with-date_time --with-random link=static runtime-link=shared threading=multi
I am on windows 10 with vs2017 ,I just add :
"set(Boost_LIB_PREFIX "lib")
set(_boost_RELEASE_ABI_TAG ".lib")"
before
"unset(_boost_RELEASE_NAMES)"
in FindBoost.cmake
file and solved my problem!
Putting these two lines in the Findboost.cmake
solves the problem. I am on windows 10
using visual studio 17
.
set(Boost_LIB_PREFIX "lib")
set(_boost_RELEASE_ABI_TAG ".lib")
If i am correct, FindBoost was searching for files without .lib but the libraries have .lib in the end.
Make sure you've selected the right platform for the generator.
For example if your Boost is 64-bit and CMake's generator is set to Win32 (default on Windows), it will not be able to find the libraries. This is set whenever you first try to configure the project and you can reset it by deleting the cache.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.