it-swarm-ko.tech

유망한 대안이 있습니까?

나는 수년 동안 make와 makefile을 사용해 왔으며, 개념은 건전하지만 구현에는 바람직한 것이 있습니다.

아무도 문제를 복잡하게 만들지 않는 좋은 대안을 찾았습니까?

73
mike511

SCons 를 확인하십시오. 예를 들어 Doom 3과 Blender는이를 사용합니다.

26
WaldWolf

크로스 플랫폼 개발을 위해 CMake가 맹세하는 많은 친구가 있습니다.

http://www.cmake.org/

크로스 플랫폼을 가진 C++ 라이브러리 인 [~ # ~] vtk [~ # ~] 에 사용되는 빌드 시스템입니다. Python, Tcl 및 Java 바인딩. 아마도 많은 기능에서 가장 복잡하지 않은 것 같습니다.

항상 표준 autotools 를 시도 할 수 있습니다. Automake 파일은 Unix에서만 실행 중이고 C/C++를 고수하는 경우 쉽게 정리할 수 있습니다. 통합은 더 복잡하고 autotools는 가장 간단한 시스템과 거리가 멀다.

25
Todd Gamblin

그놈 프로젝트 중 일부가 waf 으로 마이그레이션되었습니다.

Scon과 같은 Python 기반이지만 독립형이기 때문에 다른 개발자가 선호하는 빌드 도구를 설치하지 않아도 독립형 빌드 스크립트를 프로젝트에 복사하기 만하면됩니다.

15
Eric Talevich

Rake 를 사용하는 것이 좋습니다. 내가 찾은 가장 쉬운 도구입니다.

루비가 당신의 것이 아닌 경우, 내가 사용한 다른 좋은 도구는 다음과 같습니다.

  • AAP (파이썬)
  • SCons (파이썬)
  • Ant (자바, XML 설정, 꽤 복잡함)
12

doit 는 python 도구입니다. 빌드 도구의 개념을 기반으로하지만보다 일반적인 도구입니다.

  • 작업/규칙을 최신으로 유지하는 방법을 정의 할 수 있습니다 (타임 스탬프 확인뿐 아니라 대상 파일이 필요하지 않음)
  • 다른 작업으로 종속성을 동적으로 계산할 수 있습니다
  • 작업의 동작은 python 함수 또는 셸 명령 일 수 있음)
12
schettino72

ninjatup 의 영향을받는 redo 빌드 도구 (v1.8.2 2017 년 9 월)에 유의하십시오.

빌드 파일 생성기 cmake (예 : Unix Makefiles, Visual Studio, XCode, Eclipse CDT 등)는 버전 2.8.8 (2012 년 4 월) 이후로 ninja 빌드 파일을 생성 할 수 있습니다. ninja은 이제 cmake에서 사용하는 기본 빌드 도구입니다.

make 도구보다 성능이 뛰어나야합니다 (더 나은 종속성 추적 및 병렬화 됨).

cmake은 이미 확립 된 도구입니다. 구성 파일을 수정하지 않고 나중에 빌드 도구를 선택할 수 있습니다. 따라서 향후 cmake에서 지원할 더 나은 빌드가 개발되면 편리하게 전환 할 수 있습니다.

C/c ++의 경우 전처리기를 통해 포함 된 헤더로 인해 컴파일 시간이 제한되는 경우가 있습니다 (특히 헤더 전용 라이브러리를 사용하는 경우 boost & eigen ) 이것은 희망적으로 modules (c ++ 11에 대한 기술적 검토 또는 결국 c ++ 1y)의 제안으로 대체 될 것입니다. 이 문제에 대한 자세한 내용은이 presentation 을 확인하십시오.

5
Hotschke

sake 라는 도구를 작성하여 makefile과 같은 것을 읽고 쓰기가 매우 쉬워졌습니다.

4
tonyfischetti

그것은 당신이하려는 일에 달려 있습니다. all 원하는 make 스타일 대상 종속성 및 명령 호출 인 경우 실제로 Make는 작업을위한 더 나은 도구 중 하나입니다. :-) 레이크는 매우 좋지만 간단한 경우에는 서투른 수 있습니다. Ant는 물론 자세한 도시이지만 Java와 같은 언어 (Scala 및 Groovy 포함)를 더 잘 지원합니다. 또한 Ant는 everywhere를 사용할 수 있습니다. 그것이 내가 사용하는 주된 이유입니다. Windows에서 일관되게 작동하기 때문에 실제로는 Make보다 크로스 플랫폼입니다.

Java와 같은 라이브러리에 대한 종속성 관리를 원한다면 Maven이 정식 선택이지만 개인적으로 Buildr를 훨씬 더 좋아합니다. 더 빠르고 쉽게 사용자 정의 할 수 있습니다 (레이크 기반). 불행히도, 아직 Maven만큼 보편적이지 않습니다.

3
Daniel Spiewak

나는 대안을 많이 고려한 후에도 여전히 make를 선호합니다. 컴파일러 또는 fastdep와 같은 것을 통해 자동 생성 된 종속성을 수행 할 때 할 일이별로 없습니다. 특히 빌드 스크립트를 구현 언어에 묶고 싶지 않으며 더 읽기 쉬운 대안이 있으면 XML로 물건을 쓰는 것을 좋아하지 않습니다. 범용 언어를 노출시키는 도구는 장점이 있지만 또 다른 해석 언어는 그렇지 않습니다 (afaik). Make의 문제점은 무엇입니까? make에서 멀어 지도록하는 관점에 호소 할 수 있습니다.

앨런

2
Allan Wind

루비의 make 시스템을 레이크라고합니다 : http://rake.rubyforge.org/

매우 유망 해 보인다.

항상 개미가 있습니다 : http://ant.Apache.org , 나는 개인적으로 끔찍한 것을 발견합니다. 그러나 Java 개발의 사실상의 표준입니다.

1
davetron5000

당신이 여기에 올바른 질문을하고 있는지 확실하지 않습니다.

당신은 단순화 된 확인 후입니까? 이 경우 문제를 단순화 할 수있는 일련의 (M | m) akefile을 만들려면 make에 익숙한 사람이 필요합니다.

아니면 기본 기술을보고 싶습니까? 코드 설계에 내장되고 시행되는 계약 별 설계 유형 아키텍처를 시행하고 싶습니까? 또는 언어 자체 (예 : 에이다와 그 스펙 (인터페이스)과 바디 (구현)의 개념?

어떤 방향으로 당신이 그런 질문의 잠재적 결과에 확실히 영향을 미칠 것인가?

기본적으로 실제로 변경된 구성 요소만으로 시스템을 구축하는 새로운 방법과 설계에 의해 이러한 메커니즘이 내장 된 새로운 기술을 채택하는 방법이 있습니다.

직접 답변이 아닙니다. 그냥 내려 가고 싶은 길을 평가하려고 노력하고 싶었습니다.

건배,

0
Rob Wells

RTDA의 FlowTracer는 대규모 환경 (수만 개의 작업)에서 상업적으로 사용되는 또 다른 좋은 선택입니다. http://www.rtda.com/flowtracer-design-flow-infrastructure-software

작업의 경우 색상으로 구분 된 상자와 파일의 타원형으로 종속성 그래프를 표시하는 GUI가 있습니다. 작업 및 파일 수가 많아지면 FlowTracer와 같은 GUI 기반 도구가 매우 중요합니다.

초기 설정 비용은 Make보다 높습니다. 이를 사용하여 첫 번째 흐름을 설정하기위한 학습 곡선이 있습니다. 그 후에는 빨라집니다.

0
bu11d0zer