처음부터 Linux

처음부터 Linux

저는 현재 Linux From Scratch를 수행하고 있습니다. 일부 패키지를 다운로드했습니다. "tar" 명령을 사용하여 압축을 풀고 추출된 패키지 내에서 다음을 수행합니다.

  1. 구성
  2. 만들다
  3. 테스트하다
  4. 설치하다

또 한 가지 makefile이 무엇인가요?

특히 LFS 측면에서 이러한 명령의 목적을 친절하게 설명해주세요. 미리 감사드립니다.

답변1

나는 그것이 무엇인지 알고 있지만 설명하는 방법을 알고 있는지 잘 모르겠습니다.

기본적으로 언급한 일련의 명령을 사용하면 소스 코드(예: 프로그래밍 언어로 작성된 코드)에서 이진 실행 가능 형식(프로그램, 라이브러리)으로 무언가를 생성하고 이를 운영 체제에 설치합니다(적절한 폴더로 이동). , 구성 파일 설정 등).

makefile은 make 명령이 사용하는 텍스트 파일입니다. 작업을 돕습니다(자동화). 단일 makefile에는 make가 수행하는 둘 이상의 작업이나 작업에 대한 정보가 포함될 수 있습니다. 메이크파일이 없으면 작업을 완료하기 위해 복잡한 수동 단계를 많이 수행해야 합니다.

"구성": (설명은 다음에서 따옴)여기) 소프트웨어가 설치될 시스템에 대한 일부 세부 정보를 확인합니다. 이 스크립트는 시스템에 대한 많은 종속성을 확인합니다. 특정 소프트웨어가 제대로 작동하려면 컴퓨터에 이미 많은 것들이 존재해야 할 수도 있습니다. 시스템에 주요 요구 사항 중 하나라도 누락된 경우 구성 스크립트가 종료되고 필요한 사항을 얻을 때까지 설치를 계속할 수 없습니다. 그렇지 않으면 다음 단계에서 사용할 Makefile이 생성됩니다.

매개변수 없는 "make": make가 makefile의 기본 작업(규칙)을 실행하도록 지시합니다. 이는 일반적으로 생성하려는 바이너리(예: 프로그램 또는 라이브러리)를 컴파일, 링크 및 생성합니다. 여기에는 일반적으로 소스 코드를 개체 파일(일반적으로 확장자가 있음 .o)로 변환하고 이를 최종 바이너리 파일(Linux 프로그램의 경우 일반적으로 확장자가 없거나 Linux 라이브러리의 경우 일반적으로 .so또는 .a확장자가 있음)로 연결하는 작업이 포함됩니다. 저는 Java 프로그래머이고 이러한 단계를 자주 수행하지 않기 때문에 단계에 대해 잘 모르겠습니다.

"make test": 해당 바이너리에 대해 테스트를 수행합니다.

"make install": 기본적으로 바이너리를 적절한 폴더 위치로 이동합니다.

물론 이 설명은 많은 개선을 가져올 수 있습니다. 저는 단지 일반적인 프로세스에 대한 아이디어를 제공하려고 노력하고 있습니다.

이 짧은 튜토리얼좀 더 많은 정보를 제공할 수 있습니다.

답변2

a를 사용하면 Makefile개발자와 최종 사용자 모두의 삶이 더 쉬워집니다. 기본적으로 이는 특정 소프트웨어를 구축하는 방법에 대한 치트 시트입니다. 간단한 "Hello world"의 경우 g++ hw.cpp -o hello_world작동할 수 있습니다. 그러나 훨씬 더 복잡한 소프트웨어가 있는 경우에는 A 조각을 B 조각보다 먼저 빌드해야 하고 이 두 가지가 완료되면 C 조각을 빌드할 수 있는 경우가 많습니다. 포함된 라이브러리, 임시 출력 파일, 최종 설치 경로 등(일반적으로 스크립트가 실행될 때 결정됨)에 대한 경로를 삽입하는 것뿐만 아니라 이를 수동으로 입력하면 configure오류가 발생할 수 있습니다.

관련 정보