2017-09-07 1 views
0

어떤 운영 체제 코드가 실행되고 있는지 어떻게 알 수 있습니까?부스트에서 플랫폼 ID를 얻는 방법

예컨대 Unix-Linux, solaris, HP Unix, Windows, Mac 등과 같은 운영 체제를 확인하는 방법은 무엇입니까?

부스트를 가진 C++ 코드에서 운영 체제를 어떻게 결정할 수 있습니까? Boost v 1.41 이상으로 테스트하고 싶습니다.

미리 감사드립니다.

+0

컴파일 타임에 어떤 운영 체제 코드 집합이 실행되는지 알고 있습니다. 플랫폼 별 방법을 사용하여 특정 OS 버전을 쿼리 할 수 ​​있습니다. – VTT

+0

런타임에 확인하고 싶습니다. OS 정보를 제공하는 어떤 종류의 클래스 메소드. – Neel

+0

QSysInfo를 사용할 수 있습니다. https://stackoverflow.com/questions/3063110/get-the-current-operating-system-during-runtime-in-c – yacc

답변

0

이 빠른 밝혀 version.hpp/config.hpp의 스캔 것들 :

BOOST_VERSION   106400 
BOOST_LIB_VERSION  1_64 
BOOST_PLATFORM   linux 
BOOST_PLATFORM_CONFIG boost/config/platform/linux.hpp 
BOOST_COMPILER   Clang version 3.8.0 (tags/RELEASE_380/final 263969) 
BOOST_STDLIB   libc++ version 1101 
BOOST_STDLIB_CONFIG  boost/config/stdlib/libcpp.hpp 

또는 내 자신의 컴퓨터에를 인쇄

Live On Coliru

#include <boost/version.hpp> 
#include <boost/config.hpp> 
#include <iostream> 

int main() { 
    std::cout << "BOOST_VERSION   " << BOOST_VERSION   << "\n"; 
    std::cout << "BOOST_LIB_VERSION  " << BOOST_LIB_VERSION  << "\n"; 
    std::cout << "BOOST_PLATFORM   " << BOOST_PLATFORM   << "\n"; 
    std::cout << "BOOST_PLATFORM_CONFIG " << BOOST_PLATFORM_CONFIG << "\n"; 
    std::cout << "BOOST_COMPILER   " << BOOST_COMPILER   << "\n"; 
    #ifdef BOOST_LIBSTDCXX_VERSION 
    std::cout << "BOOST_LIBSTDCXX_VERSION " << BOOST_LIBSTDCXX_VERSION << "\n"; 
    #endif 
    #ifdef BOOST_LIBSTDCXX11 
    std::cout << "Compiled with c++11 support enabled\n"; 
    #endif 
    std::cout << "BOOST_STDLIB   " << BOOST_STDLIB   << "\n"; 
    std::cout << "BOOST_STDLIB_CONFIG  " << BOOST_STDLIB_CONFIG  << "\n"; 
} 

BOOST_VERSION   106500 
BOOST_LIB_VERSION  1_65 
BOOST_PLATFORM   linux 
BOOST_PLATFORM_CONFIG boost/config/platform/linux.hpp 
BOOST_COMPILER   GNU C++ version 7.2.0 
BOOST_LIBSTDCXX_VERSION 70200 
Compiled with c++11 support enabled 
BOOST_STDLIB   GNU libstdc++ version 20170818 
BOOST_STDLIB_CONFIG  boost/config/stdlib/libstdcpp3.hpp