2010-04-16 2 views
0

바닐라 iPhone 프로젝트를 컴파일 할 때 헤더 파일이 포함 된 경우에도 플랫폼이 iPhone OS에 있음을 나타내는 매크로가 정의되어 있습니까?저수준 매크로는 Apple 헤더가 포함되어 있지 않아도 iPhone OS를 식별 할 수 있도록 정의되어 있습니까?

헤더가 포함되지 않은 경우 TARGET_OS_MAC 또는 TARGET_OS_IPHONE 같은 매크로가 정의되지 않습니다. 실행 전처리에만

  • -dM : #define 년대 덤프

    그래서 나는

  • 답변

    1
    gcc -x objective-c -E -dM /dev/null 
    
    • -E이 __GNUC__, _MSC_VER ... 등, __cplusplus의 비슷한 수준에서 정의 된 매크로를 찾고 있어요.
    • - : 소스 코드에서 읽음 stdin
    • -x objective-c : 소스 코드를 ObjC로 취급하십시오.
    +0

    감사! \ _ \ _ APPLE \ _ \ _, \ _ \ _ OBJC \ _ \ _ 및 \ _ \ _ APPLE \ _CC \ _ \ _ 좋은 선택입니다. – ohho

    +0

    그러나 이들은 OS X 컴파일을 위해서도 설정되어 있기 때문에 잘못되었습니다. – Urkle

    관련 문제