문제

나는 많은 별도의 C 파일과 헤더와 수십 명의 기고자가있는 매우 큰 C 프로젝트를 가지고 있습니다. 많은 기고자들은 makefiles와 종속성에 대한 강한 지식을 가지고 있지 않으므로, 당신이 올바른 출력을 생성하기 위해 "만들기"를 신뢰하기 전에 거의 항상 "깨끗하게"해야하는 드문 문제가되지 않습니다.

Make가 몇 분이 걸렸다면, 이것은 문제가되지 않지만 지금은 빠른 기계에서 거의 2 시간이 지났으며 사람들은 그들이 만들 때 작동하는 코드를 확인하기 시작하지만 먼저 청소하지 않으며 코드가 깨지는 경우가 있습니다. 빌드. 새로운 기준선이 잘리기 전에 왜 이것들이 빌드 매니저에 의해 잡히지 않았는지 묻지 마십시오 ...

그렇습니다.

예, 우리는 개발자를 교육하고 있습니다.

평소와 같이, 우리는 모든 것을 멈추고 손으로 고칠 시간이 없습니다.

나는이 라인을 따라 도구가 있다고 생각합니다.

  • C 및 H 파일에서 기존 프로젝트에 대한 올바른 종속성 정보를 구축하는 데 도움이되는 자동 도구가 있습니까?
  • makefiles에 따라 종속성 정보를 설명 할 수있는 자동화 된 도구가 있습니까?
  • 위의 두 개의 의존성 트리의 차이점을 설명하는 도구의 성배가 있습니까?

그러나이 문제를 해결하기 위해 무엇을 할 수 있습니까?

미리 감사드립니다 ...

-아담

도움이 되었습니까?

해결책

의존성을 자동으로 감지하는 도구로 전환하는 것이 가장 쉬울 수 있습니다. 예를 들어, 스콘 종속성을 나열하게 만드는 것은 아니지만 대신 컴파일중인 파일을 자동으로 구문 분석하고 포함합니다. 컴파일 해야하는 파일과 실행 파일에 들어가는 파일을 지정합니다. 개발자가 실제로 전문가를 만들지 않는다는 사실이 더 쉬울 것입니다.

당신이 Make를 고수하는 또 다른 대안은 gcc -M 종속성을 자동으로 감지하는 옵션. 에 대한 답 C 의존성을 자동으로 발견합니다 질문에는 MakeFiles가 자동으로 종속성을 발견하여 손으로 지정할 필요가 없도록하는 방법에 대한 예가 있습니다.

다른 팁

직장에서도 같은 문제가 있습니다. 트렁크는 병합이나 체크인 후 항상 깨졌습니다.

우리는 a를 설정했습니다 연속적인 외식 Dev 기계에서 약 2 시간에 비해 약 45 분 안에 깨끗하게 만드는 기계를 빌드합니다. 통합 서버는 새로운 체크인을 위해 2 시간마다 SVN 저장소를 설문 조사하고 Make Clean을 시작합니다.

그렇게하면 빌드가 고장 났을 때 정확히 모니터링하고 바로 수정할 수 있습니다. 우리는 사용 허드슨 강 우리의 지속적인 통합 서버, 무료 및 오픈 소스, 예술 작품이며 매우 쉽게 설정하기 쉽습니다. 또한 사용자 인터페이스는 매우 직관적이며 다른 모든 개발자는 좋아합니다.

건배,

이것을 해결하는 정식 방법은 컴파일러가 자동으로 종속성 정보를 생성 할 수 있도록하는 것입니다. 이와 같은 것 (GCC를 가정하면 유사한 옵션이 있는지 컴파일러를 확인하고 싶을 것입니다).

SOURCES=foo.c bar.c

%.d: %.c
    $(CC) $(CFLAGS) -MM $< >$@ 

include $(SOURCES:.c=.d)

GNU Make Manual에는 장이 있습니다 전제 조건을 자동으로 생성합니다.

편집 : 나는 보통 사람들이 사용을 시작하는 것이 좋습니다 cmake 그들이 이런 종류의 문제가있을 때.

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