私は、多くの人が同じ問題を抱えていることを突き止めて見つけましたが、解決策はありません。私はMinGWのためのMakefileを生成するために、CMakeのを使っていますし、コンパイルするとき、私はエラーを取得していますCMakeとBoost
:
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を追加すると、私のために修正されました。私はこの1時間ほど頭を掻き回してきました。 – CadentOrange