2014년 6월 16일 월요일

-Wdeprecated-declarations 경고 없애기

gcc -Wall 로 컴파일 할 때 -Wdeprecated-declarations 경고가 발생하는 경우

1. 경고가 생기지 않는 함수를 사용

2. 경고를 표시하지 않도록 함
2-1. 커맨드 라인에서 지정(모든 함수에 적용)
-Wno-deprecated-declarations 옵션 추가

2-2. #pragma 사용(이후의 모든 함수에 적용)
소스나 헤더에 다음을 추가
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"

2-3 #pragma 사용2(해당 함수 사용 부분에만 적용)
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
warning_function();
#pragma GCC diagnostic pop

2-4 매크로에 끼워 넣기
#define LOG(level, ...) \
    do { \
        _Pragma("GCC diagnostic push") \
        _Pragma("GCC diagnostic ignored \"-Wdeprecated-declarations\"") \
        LogPrint(level, __VA_ARGS__); \
        _Pragma("GCC diagnostic pop") \
    } while (0)

참고
deprecated 는 사용 가능하지만 다른 함수의 사용을 권장하는 경우
obsolete 는 사용할 수 없게 된 함수인 경우