He buscado y descubrí que muchas personas tienen el mismo problema, pero no existe ninguna solución.CMake and Boost
estoy usando CMake para generar Makefile para compilar MinGW y cuando estoy consiguiendo un error:
CMakeFiles\boosttest.dir/objects.a(main.cpp.obj):main.cpp:(.text+0x5e): undefined reference to `_imp___ZN5boost6thread4joinEv'
CMakeFiles\boosttest.dir/objects.a(main.cpp.obj):main.cpp:(.text+0x71): undefined reference to `_imp___ZN5boost6threadD1Ev'
CMakeFiles\boosttest.dir/objects.a(main.cpp.obj):main.cpp:(.text+0x88): undefined reference to `_imp___ZN5boost6threadD1Ev'
Esto parece ser un problema de vinculación, lo entiendo. Mi configuración de CMake es:
project(boosttest)
cmake_minimum_required(VERSION 2.6)
include_directories(${boosttest_SOURCE_DIR}/include c:/boost_1_48_0/)
link_directories(c:/boost_1_48_0/lib)
file(GLOB_RECURSE cppFiles src/*.cpp)
add_executable(boosttest ${cppFiles})
target_link_libraries(boosttest libboost_thread-mgw46-mt-1_48.a)
Primero trató de usar find_package(Boost COMPONENTS thread)
y que estaba trabajando de la misma manera, así que pensé que tratar de hacerlo de forma manual y sigo teniendo el mismo error.
¿Tiene alguna idea sobre esto?
Lo he compilado para mingw usando bjam y como un enlace estático. También intenté haciendo:
add_library(imp_libboost_thread STATIC IMPORTED)
set_property(TARGET imp_libboost_thread PROPERTY IMPORTED_LOCATION c:/boost_1_48_0/lib/libboost_thread-mgw46-mt-1_48.a)
target_link_libraries(boosttest imp_libboost_thread)
Y todavía recibo los mismos mensajes de error.
Al agregar BOOST_THREAD_USE_LIB lo arregló para mí. Me he estado rascando la cabeza en esto durante la última hora más o menos. – CadentOrange