2016-07-26 3 views
0

이 부스트 자습서의 로그 라이브러리 Boost Log tutorial을 따르려고합니다. 동일한 코드를 사용하여부스트 로그 런타임 오류

#include <boost/log/trivial.hpp> 

int main(int, char*[]) 
{ 
    BOOST_LOG_TRIVIAL(trace) << "A trace severity message"; 
    BOOST_LOG_TRIVIAL(debug) << "A debug severity message"; 
    BOOST_LOG_TRIVIAL(info) << "An informational severity message"; 
    BOOST_LOG_TRIVIAL(warning) << "A warning severity message"; 
    BOOST_LOG_TRIVIAL(error) << "An error severity message"; 
    BOOST_LOG_TRIVIAL(fatal) << "A fatal severity message"; 

    return 0; 
} 

코드는 예상대로 성공적으로 컴파일 될 수 있습니다. 그러나 코드를 실행하면 런타임 오류 팝업 : Entry Point Not Found. 내가 난수를 생성 같은 다른 목적을위한 부스트 lib 디렉토리를 사용

The procedure entry point AcquireSRWLockShared could not be located in the dynamic link library KERNEL32.dll.

, 그래서 나는 도서관 자체가 제대로 설치되어 추측 : 오류 메시지는 읽습니다.

누구든지 나를 도와 줄 수 있습니까? 고맙습니다.

+0

검색 가능성을 높이기 위해 질문에 오류를 복사하십시오. – Quentin

+0

MSDN 해당 오류 : https://support.microsoft.com/en-us/kb/142606, 부스트 설치를 확인하십시오. –

+0

동적 연결을 사용하고있는 것처럼 들리며'boost' DLL이'PATH'에 없습니다. – kenba

답변

1

이전 버전의 Windows를 실행하는 동안 Boost 라이브러리는 Windows Vista 이상용으로 제작되었습니다.

Windows XP 용 부스트를 다시 빌드해야합니다. 이렇게하려면 Boost를 빌드 할 때 b2 명령 줄에 define=BOOST_USE_WINAPI_VERSION=0x0501을 추가해야하며 코드를 빌드 할 때도 마찬가지로이 매크로를 정의해야합니다.

+0

감사합니다. @ Andrey Semashev. 그러나 문제는 이전 버전의 Windows에서는 발생하지 않을 것입니다. 내 컴퓨터가 Windows XP에서 실행 중이며 Boost 라이브러리가 바로이 머신에 구축되었습니다. 또한, Boost Library는 난수 생성 및 데이터 형식 변환 및 행렬 계산과 같은 다른 용도로 과거에 사용되었습니다. – bozhao

+0

Windows XP에서 최신 Windows 용 프로그램을 빌드 할 수 있으며 컴파일러에서 지원하는 경우 기본적으로 최신 Boost가 Windows Vista 용으로 컴파일됩니다. 일부 라이브러리는 Windows Vista에서 API를 사용할 수 없으며 일부 라이브러리는 이전에 일부 라이브러리를 사용할 수있었습니다. 그래서 저는 제 충고를 지킵니다. –

+0

다시 @ Andrey Semashev에게 감사드립니다. 내 컴퓨터는 Windows XP에 있으며이 컴퓨터에서 항상 프로그램을 빌드하고 실행합니다. 그래서 나는 그렇게 확신하지 못합니다. 귀하의 조언을 오해 한 경우 알려 주시기 바랍니다. 감사. – bozhao