2017-05-01 19 views
0

はブーストを使用し、次のプログラム::ライブラリを構築しようとすると、新しいロガーを作成しようとBoost.Logエラー:C++ - 名前空間

#include <string> 
#include <boost/log/core.hpp> 
#include <boost/log/trivial.hpp> 
#include <boost/log/expressions.hpp> 

class TestClass 
{  
    ...   
    boost::log::sources::logger lg; 
}; 

このファイルを構築するための私のcmakeのファイル:

set(Boost_USE_STATIC_LIBS ON) 
set(Boost_USE_MULTITHREADED ON) 
set(Boost_USE_STATIC_RUNTIME OFF) 

find_package(Boost 1.63.0 
      COMPONENTS system 
         filesystem 
         log 
         log_setup 
         thread 
         unit_test_framework 
      REQUIRED) 

include_directories(SYSTEM ${Boost_INCLUDE_DIRS}) 

file(GLOB PROJECT_SOURCES sources/*.cpp 
          sources/configuration/*.cpp) 
file(GLOB PROJECT_HEADERS sources/*.h 
          sources/configuration/*.h) 

add_executable(${PROJECT_NAME} 
       ${PROJECT_SOURCES} 
       ${PROJECT_HEADERS}) 
target_link_libraries(${PROJECT_NAME} 
         ${Boost_LIBRARIES} 
         Boost::log) 

しかし、私は次のエラーを取得リンク時:私の名前空間boost::log::sourcesがに変換されるのはなぜ

error: 'logger' in namespace 'boost::log::v2_mt_nt5::sources' does not name a type 
     boost::log::sources::logger log; 

boost::log::v2_mt_nt5::sources?この問題を解決するには?あなたは、単にincludeディレクティブ欠けている

+0

それは 'ブースト:: log'をtarget_link_libraries''内で動作しますか? 'Boost :: log.lib'を見つけることができないというエラーメッセージが出る –

答えて

1

#include <boost/log/sources/logger.hpp> 
+0

確かに。今それは動作します。ブーストの例で同じファイルが見つかりません。 – Serbin