programing

클랭을 감지하는 데 사용할 수 있는 미리 정의된 매크로

prostudy 2022. 5. 4. 21:25
반응형

클랭을 감지하는 데 사용할 수 있는 미리 정의된 매크로

내 소스 코드를 컴파일하는 데 사용되는 컴파일러를 탐지하려고 해.MSVC나 GCC를 확인할 사전 정의된 매크로를 쉽게 찾을 수 있지만(예: http://predef.sourceforge.net/ 참조), clang을 확인할 매크로를 찾을 수 없다.

땡땡이가 매크로를 정의하는지 아십니까?__CLANG__현재 내 코드를 컴파일하고 있는 것이 무엇인지 알기 위해서?

컴파일러에서 사용하는 모든 미리 정의된 매크로 목록을 가져오려면 다음을 사용하십시오.

clang -dM -E -x c /dev/null

gcc도 똑같이 할 수 있다.

다음과 같은 방법으로 답을 찾았다.strings+grep:

$ strings /usr/bin/clang | grep __ | grep -i clang
__clang__

이 질문은 수년 동안 답변되어 왔으나 Windows에서 어떻게 수행되는지 (나중에 참조할 수 있도록) 추가하겠다.

echo | clang -dM -E -

GCC와 동일:

echo | gcc -dM -E -

참고:마지막 대시-사실 중요한 거야! (그렇지 않으면 넌 알게 될 거야.error: no input files두 컴파일러 모두에 대해)

참조URL: https://stackoverflow.com/questions/2658461/what-predefined-macro-can-i-use-to-detect-clang

반응형