मैंने खोज की और पाया कि बहुत से लोगों को एक ही समस्या है, लेकिन कोई समाधान मौजूद नहीं है।सीएमके और बूस्ट
मैं CMake उपयोग कर रहा हूँ MinGW के लिए Makefiles उत्पन्न करने के लिए और जब संकलन मैं एक त्रुटि हो रही है:
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'
यह एक जोड़ने समस्या लगती है, मैं समझ गया। मेरे CMake विन्यास है:
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)
सबसे पहले मैं find_package(Boost COMPONENTS thread)
उपयोग करने की कोशिश है और यह उसी तरह काम कर रहा था, इसलिए मैं इस मैन्युअल रूप से करने की कोशिश करने के लिए सोचा और मैं अभी भी एक ही त्रुटि मिलती है।
इस पर कोई अंतर्दृष्टि?
मैंने इसे bjam का उपयोग करके और एक स्थिर लिंक के रूप में mingw के लिए संकलित किया है। यह भी करने की कोशिश की:
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)
और मुझे अभी भी वही त्रुटि संदेश मिलते हैं।
BOOST_THREAD_USE_LIB को जोड़ने के लिए यह मेरे लिए तय किया गया है। मैं इस समय अपने सिर को आखिरी घंटे या उससे भी ज्यादा समय तक खरोंच कर रहा हूं। – CadentOrange