저는 기본 홈 데스크탑 OS로 Gentoo를 사용합니다. 나는 ~2004년부터 그랬다. emerge
소스 기반 OS를 관리하는 명령에 감사드립니다 . 가끔 다른 배포판을 확인하지만 특히 좋아합니다.Linux From Scratch - 모르는 분들을 위해. 물론, 나는 Gentoo를 사용하는 것이 그 점에서 나를 망쳤기 때문에 책 전체를 읽어본 적이 없습니다. 나는 Gentoo를 LFS + 패키지 관리자라고 생각합니다. 나는 마침내 책을 완성하기로 결정했고, 새로움을 시뮬레이션하기 위해 XUbuntu를 VM에 붙였습니다.
나는 릴리스 후보를 따라가고 있습니다.버전 3 - CLFS의 시스템화, 그리고 그것은 나에게 충격을 주었다6장 - 임시 시스템 - 만들기. 사용자가 make
Make 버전을 컴파일 해야 하는 경우닭고기와 계란의 인과관계 문제나타납니다 이것은 다음 논리적 질문으로 이어집니다.
언제스튜어트 펠드먼1976년에 만들어진
make
컴퓨터 대중은 자신의 OS에 종속적인 OS가 포함되어 있지 않은 경우 어떻게 그의 프로그램을 컴파일했습니까make
? 아래 WikiPedia 기사가 모든 OS에 적용된다고 가정해야 합니까?1을 완료하려면 make의 모든 OS 종속 버전을 포함하도록 make를 패키지해야 했나요?(아래 참조)
프로그램 A가 필요했는데 OS A에서만 컴파일이 가능했다면, OS B를 사용하더라도 OS A를 구입해야 합니까? (가능한 경우 여기에서 Windows를 무시하십시오.)
업데이트
- jimmij의 의견을 바탕으로,make가 OS 의존적이었던 것과 같은 방식으로 OS 특정 컴파일러가 존재했습니까?
위키피디아말한다:
Make가 도입되기 전에 Unix 빌드 시스템은 가장 일반적으로 프로그램 소스와 함께 제공되는 운영 체제 종속 "make" 및 "install" 셸 스크립트로 구성되었습니다. 다양한 대상에 대한 명령을 단일 파일로 결합할 수 있고 종속성 추적 및 아카이브 처리를 추상화할 수 있는 것은 현대 빌드 환경의 방향에서 중요한 단계였습니다.
또한 저는 1976년생이므로 여기서 역사적 관점을 찾고 있다는 점을 참고해 주시기 바랍니다.
답변1
Make는 단순히 편의를 위한 것입니다. 그것 없이도 소프트웨어를 구축할 수 있지만, 이는 더욱 어렵습니다.
무언가를 빌드하기 위해 실행하면 make
실행 중인 명령이 표시됩니다. 해당 명령을 수동으로 실행하여 동일한 효과를 얻을 수 있습니다.
$ echo "int main() {}" > test.c
$ make test
cc test.c -o test
라는 파일이 생성되었습니다 test
.
다음을 수행하여 동일한 결과를 얻을 수 있습니다.
cc test.c -o test
make가 존재하지 않는 경우 사용자에게 이 cc
명령을 직접 실행하도록 지시하거나 쉘 스크립트를 배포하고 스크립트를 실행하도록 지시할 수 있습니다.