문제

Automake와 함께 파일 별 플래그를 설정하는 방법이 있습니까?
특히 C ++ 프로젝트가 있고 특정 경고를 비활성화하려는 모든 파일을 제외한 모든 파일과 함께 컴파일하려면 어떻게해야합니까?

나는 다음과 같은 것을 시도했다.

CXXFLAGS = -WAll ...
bin_PROGRAMS = test
test_SOURCES = main.cpp utility.cpp
utility_o_CXXFLAGS = $(CXXFLAGS) -Wno-unused-value

그러나 작동하지 않았습니다.

편집 : 실제로 오해의 소지가있는 Automake 매뉴얼에 대한 참조가 제거되었습니다 (Douglas Leeder 덕분).

도움이 되었습니까?

해결책

Automake는 대상당 플래그 만 지원하는 반면 객체 당 깃발을 원합니다. 한 가지 방법은 객체를 포함하는 작은 라이브러리를 만드는 것입니다.

CXXFLAGS = -Wall ...
bin_PROGRAMS = test
test_SOURCES = main.cpp
test_LDADD = libutility.a
noinst_LIBRARIES = libutility.a
libutility_a_SOURCES = utility.cpp
libutility_a_CXXFLAGS = $(CXXFLAGS) -Wno-unused-value

다른 팁

당신은 이것을 할 수 없습니다 automake... 하지만 할수있다 ~와 함께 make =) 다음 선을 추가하십시오 Makefile.am:

utility.$(OBJEXT) : CXXFLAGS += -Wno-unused-value

보다 GNU 작성 문서 : 대상 별 변수 값 자세한 내용은.

당신은 혼란 스러웠습니다 - 해당 섹션은 자동 메이크를위한 옵션을 언급하고 있습니다.

AutomAke 명령 줄 옵션을 설정하는 방법입니다.

-W 카테고리 -Warnings = 카테고리 출력 경고 범주에 떨어집니다. 카테고리는 다음 중 하나 일 수 있습니다.

gnu
    warnings related to the GNU Coding Standards (see Top).
obsolete
    obsolete features or constructions
override
    user redefinitions of Automake rules or variables
portability
    portability issues (e.g., use of make features that are known to be not portable)
syntax
    weird syntax, unused variables, typos
unsupported
    unsupported or incomplete features
all
    all the warnings
none
    turn off all the warnings
error
    treat warnings as errors 

'No-'로 이름을 접두사로 카테고리를 꺼질 수 있습니다. 예를 들어 -wno -syntax는 사용하지 않은 변수에 대한 경고를 숨길 것입니다.

기본적으로 출력 범주는 '구문'및 '지원되지 않은'입니다. 또한, 'gnu'및 'portability'는 -gnu 및 -gnits 엄격함에서 활성화됩니다.

환경 가변 경고에는 활성화 할 쉼표로 분리 된 카테고리 목록이 포함될 수 있습니다. 명령 줄 스위치 전에 고려 될 것입니다. 이 변수는 Autoconf와 같은 다른 도구에서도 사용됩니다. 이러한 이유로 알려지지 않은 범주는 무시됩니다.

섹션 17에 나열된 파일당은 소스 파일이 아닌 MakeFile Per-MakeFile을 나타냅니다.

소스 별 파일 플래그 설정을 알지 못하지만 각 결과 바이너리에 대한 옵션을 다음과 같이 설정할 수 있습니다.

binaryname_CXXFLAGS
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top