Tôi đã tìm kiếm và phát hiện ra rằng rất nhiều người có cùng một vấn đề, nhưng không có giải pháp nào tồn tại.CMake và Boost
Tôi đang sử dụng CMake để tạo Makefiles cho MinGW và khi biên soạn tôi nhận được một lỗi:
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'
Điều này dường như là một vấn đề liên kết, tôi nhận được nó. cấu hình CMake của tôi là:
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)
Trước tiên tôi cố gắng sử dụng find_package(Boost COMPONENTS thread)
và nó đã làm việc cùng một cách, vì vậy tôi nghĩ để cố gắng làm điều này bằng tay và tôi vẫn nhận được lỗi tương tự.
Mọi thông tin chi tiết về vấn đề này?
Tôi đã biên soạn nó để trộn lẫn bằng bjam và dưới dạng liên kết tĩnh. Cũng đã thử thực hiện:
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)
Và tôi vẫn nhận được thông báo lỗi tương tự.
Thêm BOOST_THREAD_USE_LIB đã sửa nó cho tôi. Tôi đã gãi đầu của tôi về điều này trong vài giờ qua. – CadentOrange