여러 모듈 각각은 자체 테스트 _ $ (MODULE) .c로 독립적으로 테스트됩니다. 공유 라이브러리가 적용되지 않은 모듈을 포함하는 $ (LIBRARY)로 생성되었습니다. $ (basename $ <) .o는 $ (LIBRARY)에서 하나를 대체해야합니다. 웬일인지, 그들이 오버라이드되지 않는 것처럼 나는 결과를 얻는다. 누군가 이것을 검토하고 수정 사항에 대한 제안을 할 수 있습니까? 현재 나는 다섯 가지 객체 각각에 대해 비 generic gcov 규칙을 가지고 있습니다. 이 gcov는 올바르게 작동합니다. 아래에서는 일반 규칙과 규칙의 특정 용도를 보여줍니다. 사람/고효율 고품질의 유니 코드 렉싱에 협력하고 공유 라이브러리를 개발하여 지원을 구문 분석에 관심이 있다면이 복잡한 일반 Makefile 규칙은 어떻게 구성되어 있습니까
SHARED_OPTS=-O0 -Wall -Wextra -fPIC
GOPTS=$(SHARED_OPTS) -g -coverage -pg
%.gcov : %
@echo "\[email protected] generic (needs work)"
@-gcc $(GOPTS) -c -o test_$(basename $<).o test_$<
@-gcc $(GOPTS) -c -o $(basename $<).o $<
@-gcc $(GOPTS) -o gcov_test_$(basename $<) \
test_$(basename $<).o \
$(basename $<).o \
-L . -l $(LIBRARY)
@-./gcov_test_$(basename $<)
@-gcov $< >[email protected] 2>&1
@echo "no Mac gprof: -gprof gcov_test_$(basename $<) gmon.out > $<.prof"
@$(call timestamp,[email protected])
Unicode.c.gcov: Unicode.c
, 나는 검토 또는 기여자을 가지고 싶어요.
위 메이크 단편은 GitHub의 저장소에의 C : 서브 디렉토리 아래 구체적
https://github.com/jlettvin/Unicode.
의견에 감사드립니다. 이 두 줄의 $ <> 값은 ".c"로 끝납니다. 이 줄들은 일반적인 규칙이 아닌 특정 규칙에서 작동한다는 것을 기억하십시오. 나는 어떤 객체의 구성에 의해보고 된 오류가 거의 없으며, 모듈의 상호 의존성은이 시점에서 매우 드물다. '-'를 사용하면 모든 컴파일 동안 모든 객체에 대해 모든 오류 (보통 없음)를 볼 수 있다는 것을 의미한다. 그럼에도 불구하고, 지금 당장 당신의 충고를 따를 것입니다. 해결하려는 실제 문제는 다른 곳에 있습니다. 이 이름 지정을 통해 gcov 용으로 인스트루먼트 된 .o 파일은 최적화 된 .o 라이브러리 파일과 공존 할 수 있습니다. – jlettvin