편집 시스템. 단순한 구성, 제작, 설치를 넘어서

전부 또는 거의 전부 (그리고 운이 좋지 않다면) 우리는 소스 코드에서 프로그램을 컴파일해야했습니다. 실제로 대부분의 프로젝트에서 프로그램을 설치하기 위해 ./configure && make && make install을 수행하는 것으로 충분하지만 다른 대안을 살펴볼 것입니다.

GNU 메이크

GNU Make는 저수준 컴파일 시스템으로, 구성이 거의없고 테스트가 수행되지 않습니다.

장점 :

  • 매우 널리 퍼짐
  • 이해하기 쉬움
  • 빠른

단점 :

  • 약간의 구성 가능
  • 유지하기 어려움
  • 테스트를 수행하지 않음

make

BSD 만들기

BSD Make는 현재 * BSD 운영 체제에서 사용되는 Make의 또 다른 버전입니다. GNU Make와는 다르지만 덜 널리 퍼져 있지만 기능면에서 가장 포괄적 인 BSD Make입니다.

장점 :

  • 빠른
  • 이해하기 쉬움
  • GNU Make보다 더 많은 기능

단점 :

  • Linux 세계에서 널리 퍼지지 않음
  • 테스트를 수행하지 않음
  • 약간의 구성 가능
  • 유지하기 어려움

make

자동 도구

Autotools는 공식 GNU 시스템이며 GNU Make에서 해당 Makefile을 생성하기 위해 호출해야하는 configure라는 스크립트를 생성합니다. 광범위하게 확장되었지만 점점 더 많은 사람들 (나 자신을 포함)이 너무 번거롭고 어렵고 느리고 호환되지 않는다고 생각합니다.

장점 :

  • 고도로 구성 가능
  • 매우 널리 퍼짐

단점 :

  • 비 UNIX 시스템 간의 이식성이 거의 없음
  • 너무 많은 테스트를 수행합니다 (모든 항목을 확인하고 모든 항목이 모두 있음).
  • 구성시 매우 느림
  • 이전 버전과의 호환성 부족

./configure && make

CMake

(내가 가장 좋아하는 시스템) CMake는 끔찍한 하위 호환성 및 이식성과 같은 여러 측면에서 Autotools의 단점을 보완하는 시스템입니다. 또한 각 프로젝트의 요구에 맞게 구성 가능한 테스트 시스템을 개선합니다. 사실 점점 더 많은 프로젝트에서 KDE, PortAudio, Ogre3D 등과 같은 CMake를 사용합니다. Eclipse 또는 CodeBlocks 용 Makefile 또는 프로젝트를 생성하는 CMakeLists.txt 파일 덕분에 이러한 유형의 시스템을 인식 할 수 있습니다.

장점 :

  • 빠른
  • 뛰어난 크로스 플랫폼 지원
  • 매우 사용자 정의 가능한 방식으로 테스트를 정의 할 수 있습니다.

단점 :

  • 처음에는 이해하기 어렵다
  • 처음에는 무서워 할 수있는 추상화로 작업해야합니다.
  • 조금씩 자라지 만 조금 퍼져

cmake . && make

큐메이크

QMake는 Qt로 만든 프로젝트를 컴파일하기 위해 Trolltech에서 설계 한 시스템입니다. 이런 식으로 qmake는 Qt를 많이 강조하고 일반적으로 QtCreator와 같은 IDE에서 사용하는 형식입니다. Qt 프로젝트에서 꽤 인기가 있지만이 환경 밖에서는 찾을 수 없습니다.

장점 :

  • Qt와 매우 잘 통합됨
  • 빠른
  • Qt 내에서 좋은 멀티 플랫폼

단점 :

  • Qt 앱 외부에서는 흔하지 않음

qmake . && make

SC콘

SCons는 C / C ++ 프로젝트를 컴파일하기위한 Python 기반 시스템입니다. Autotools, CMake 또는 QMake와 달리; SCons는 Makefile을 빌드하지 않습니다. SCons는 매우 수정 가능하지만 간단한 작업에서 가장 느릴 수 있습니다.
장점 :

  • 쉬운 수정
  • 공정한 테스트를

단점 :

  • 약간 퍼짐
  • 천천히

scons

부스트.잼

Boost.Jam은 컴파일 시스템을 별도로 사용할 수 있지만 인기있는 C ++ Boost 라이브러리에서 사용되는 Perforce Jam 버전입니다. GNU Make와 달리 Boost.Jam은 Makefile의 개선 된 버전 인 Jamfile을 사용합니다. BeOS / Zeta / Haiku 환경에서 매우 인기가 있습니다.

장점 :

  • 빠른
  • 작성하는 가장 짧은

단점 :

  • 약간 퍼짐
  • 테스트 수행의 어려움

bjam

닌자

Ninja는 원래 Chromium 프로젝트 용으로 설계된 초고속 빌드 시스템을 제공하기 위해 Google에서 개발 한 시스템입니다. Ninja는 쉽게 수정할 수 있도록 설계되지 않았습니다. 자체 작성자에 따르면 Ninja를 생성하는 시스템을 찾아야합니다. 권장되는 것은 CMake 및 gyp입니다.

장점 :

  • 뮤 라 피드

단점 :

  • Ninja를 생성하려면 다른 시스템이 필요합니다.
  • 약간 퍼짐

ninja

다른 사람

자신의 bash 또는 python 스크립트와 같은 다른 시스템을 사용할 수 있습니다. Gradle, Maven, gyp 등과 같이 사용할 수있는 다른 비 국어 용 생성기도 있습니다.


코멘트를 남겨주세요

귀하의 이메일 주소는 공개되지 않습니다. 필수 필드가 표시되어 있습니다 *

*

*

  1. 데이터 책임자 : Miguel Ángel Gatón
  2. 데이터의 목적 : 스팸 제어, 댓글 관리.
  3. 합법성 : 귀하의 동의
  4. 데이터 전달 : 법적 의무에 의한 경우를 제외하고 데이터는 제 XNUMX 자에게 전달되지 않습니다.
  5. 데이터 저장소 : Occentus Networks (EU)에서 호스팅하는 데이터베이스
  6. 권리 : 귀하는 언제든지 귀하의 정보를 제한, 복구 및 삭제할 수 있습니다.

  1.   Abimaelmartell

    Make는 컴파일 시스템이 아니며 소스 코드에서 바이너리 (또는 대상)를 생성합니다. 태스크 러너로도 사용할 수 있습니다.

    BSD make는 기능면에서 더 광범위하고 GNU make는 더 완벽하며 더 많은 기능을 가지고 있다는 점이 다릅니다. 그리고 저는 제 경험으로 이것을 말합니다. BSD에서는 항상 GNU make를 설치해야합니다. BSD make는 GNU make에 비해 매우 간단하기 때문입니다.

    Autotools가 매우 번거 롭다는 데 동의하며 Makefile을 사용하는 것을 선호합니다. Autotools에 의해 생성 된 Makefile은 디버그하기 어렵습니다.

    안녕하십니까!

    1.    AdrianArroyoStreet

      의견 주셔서 감사합니다!
      제 생각에는 GNU make는 항상 원래 make 프로그램에 더 전통적이고 충실했고 BSD make는 항상 더 혁신적 이었지만 비교를 할 때 다른 것을 눈치 챘을 수도 있습니다.

      Autotools는 정말 큰 골칫거리입니다. Haiku 운영 체제의 공헌자로서 저는 autotools로 소프트웨어를 이식해야했고 그것은 지옥입니다. 그 혼란을 고치기 전에 Makefile 또는 CMakeLists.txt를 생성 한 경우는 거의 없습니다.

  2.   척 다니엘스

    저는 현재 Lua 스크립트를 기반으로 매우 구성 가능하고 간단한 Premake4를 사용하고 있습니다. 모르는 경우 한 번보세요.
    기사에 대한 축하, 간단하고 간결하고 훌륭한 참조.

  3.  

    'make check'는 make를 사용한 후 컴파일을 확인하는 데 사용됩니다.
    인사말