2011-03-01 3 views
0

내 프로젝트에 boost_logging을 사용하고 있습니다. 난 그냥 내 로깅 기능 사용 내 파일 중 하나에서'CRITICAL_SECTION'으로 인해 boost_logging을 컴파일 할 수 없습니다. 모호한 기호

:

1>c:\boost\boost_logging\boost\logging\detail\ts\ts_win32.hpp(57) : error C2872: 'CRITICAL_SECTION' : ambiguous symbol  
1>  could be 'c:\program files\microsoft sdks\windows\v6.0a\include\winbase.h(314) : RTL_CRITICAL_SECTION CRITICAL_SECTION' 
1>  or 'c:\boost\boost135\boost\detail\lwm_win32_cs.hpp(33) : boost::detail::CRITICAL_SECTION' 

이상한 부분이가 잘 작동되는 것을 : LDBG_ << "something" 는하지만, 나는 다음과 같은 오류를 컴파일 솔기하지 않습니다 내 PC 중 하나는 아니지만 다른 컴퓨터에서는 winbase.h가 포함될 수 있습니다.

편집 : 여기

가 LDBG_ 로그가 정의하는 방법이다 : 부스트 로깅 헤더 하기 전에 Windows의 헤더를 포함

#include <boost/logging/format_fwd.hpp> 
#include <boost/logging/format_ts.hpp> 

typedef boost::logging::scenario::usage::use< 
     // the filter is always accurate (but slow) 
     //boost::logging::scenario::usage::filter_::change::always_accurate, 
     boost::logging::scenario::usage::filter_::change::often<10>, 
     // filter does not use levels 
     boost::logging::scenario::usage::filter_::level::no_levels, 
     // the logger is initialized once, when only one thread is running 
     boost::logging::scenario::usage::logger_::change::set_once_when_one_thread, 
     // the logger favors speed (on a dedicated thread) 
     boost::logging::scenario::usage::logger_::favor::speed> finder; 

BOOST_DECLARE_LOG_FILTER(g_log_filter, finder::filter) 
BOOST_DECLARE_LOG(g_log_dbg, finder::logger) 

#define LDBG_ BOOST_LOG_USE_LOG_IF_FILTER(g_log_dbg(), g_log_filter()->is_enabled()) 
+0

우리는 LDGG_ – Mark

답변

2

보십시오.

+0

의 선언을 포함하여 더 많은 코드를 볼 필요가 있습니다. 내 포함 헤더 상단에 #include (LDBG_를 정의하는 로그 헤더)를 옮겼습니다. 고마워. – Arthur

관련 문제