메이크 파일에 대해 배우기 시작했습니다. 출력을 보면 다음과 같은 항목이 많이 있습니다.메이크 파일에서 -DHAVE_CONFIG_H의 의미
g++ -DHAVE_CONFIG_H -I ...
무엇이 정확히 -DHAVE_CONFIG_H
입니까? 이 컴파일 옵션의 기능은 무엇입니까?
메이크 파일에 대해 배우기 시작했습니다. 출력을 보면 다음과 같은 항목이 많이 있습니다.메이크 파일에서 -DHAVE_CONFIG_H의 의미
g++ -DHAVE_CONFIG_H -I ...
무엇이 정확히 -DHAVE_CONFIG_H
입니까? 이 컴파일 옵션의 기능은 무엇입니까?
모두 -DHAVE_CONFIG_H
은 정확히 각 소스 파일의 시작 부분에 #define HAVE_CONFIG_H
이있는 것처럼 정확하게 사전 프로세서 토큰 HAVE_CONFIG_H
을 정의하는 것입니다.
무엇을 사용했는지에 관해서는 나머지 소스 파일 (물론 포함 된 모든 파일)에 따라 달라집니다. 그것이 그 효과를 내기 위해 당신이 찾고 있어야하는 곳입니다.
그것은 는 것처럼 헤더 파일 config.h
당신은 아마 소스 파일 어딘가에 다음과 같은 순서를 찾을 수있는 경우에 사용할 수 있으며 포함되어야한다는 의미 같습니다
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
을하는 것입니다 사용 가능한 경우 헤더 파일을 포함하십시오. 그러나 그것은 내 생각에 정확히 어떤 영향을 미치지 않습니다. 정확히 은 전처리 기 기호를 사용합니다.
그러나 방법, "DEFS"는 Makefile에서 무엇을 의미합니까? 감사합니다 – flow
@Werner, 컨텍스트에 따라 다릅니다. "DEFS = -c -O2"인 경우 나중에 사용할 수있는 대체 코드를 정의한 것입니다. 예를 들어 "gcc $ (DEFS) blah blah"는 "gcc -c -O2 blah blah"가됩니다. – paxdiablo