정적 이진 생성 대부분의 경우

응용 프로그램 (예 : fdisk)을 설치했습니다. 그러나 실행을 위해 라이브러리가 필요했습니다. 이미 설치된 바이너리 에서 정적 바이너리를 만드는 데 도움이되는 유틸리티 / 도구를 찾고 있습니다 . 어디서나 사용할 수 있습니다.

내가 발견 한 신뢰할 수있는 유일한 도구입니다 ErmineLight에서
여기 , 그러나 이것은 공유 도자기입니다.

동일한 오픈 소스 소프트웨어가 있습니까?

EDIT fdisk는 단지 예일뿐입니다. 대부분의 경우 LFS 작업을 수행하므로 유틸리티를 사용해야하는 경우 다음 단계를 수행해야합니다.

  1. 소스를 다운로드
  2. 구성
  3. 하다
  4. 시험하다
  5. 설치하다

그래서 그냥 저장하기 위해 데비안이나 페도라 또는 다른 배포판에서 정적 바이너리를 만들고 LFS에서 시도해 볼 수있는 솔루션을 찾고 있습니다. 제대로 작동하거나 요구 사항에 따라 컴파일을 위해 소스 코드를 사용하십시오.



답변

fdisk가 단지 예이고 목표가 실제로 동적 실행 파일에서 정적 실행 파일을 작성하는 것이라면 Elf statifier를 시도 하십시오 . Ermine과 비교할 수도 있습니다 (Ermine 공급 업체가 제공하므로주의하십시오) . 참고

  • 실행 파일이 많은 경우 결합 된 크기는 동적으로 연결된 실행 파일과 필요한 동적 라이브러리의 결합 된 크기보다 클 수 있습니다.
  • NSS (사용자 이름, 호스트 이름 등의 데이터베이스) 및 로케일 관련 기능 과 같이 정적으로 링크 된 실행 파일에서는 작동하지 않을 수있는 GNU libc 기능이 있습니다.

소형의 휴대용 시스템 도구 모음을 사용하는 것이 목표 인 경우 임베디드 시스템 (포함 ) 용 핵심 도구 모음 인 BusyBox를 찾고 fdisk있습니다. Glibc보다 작은 표준 라이브러리 (예 : dietlibc 또는 µClibc)에 관심이있을 수도 있습니다 .


답변

글쎄 … 이것은 매우 나쁜 생각처럼 보인다. 그러나 가능합니다.

fdisk가 오픈 소스이므로 소스를 잡고 Makefile을 살펴보십시오. 컴파일 할 때 “-static”을 gcc로 전달하는 옵션을 찾아야합니다.

나는 C / C ++ 전문가가 아니지만 기존의 동적으로 연결된 이진에서 정적으로 연결된 이진을 만드는 것은 불가능합니다.

어디에서나 사용하려면 몇 초 안에 시작되는 작은 유지 관리 배포를 사용하고 모든 것을 수정할 수 있도록하는 것이 좋습니다.

Linux / UNIX 설치를 실행하는 디스크를 수정하고 싶을 것이므로 더 많은 감각을 느끼게됩니다.


답변

당신은 또한 사용할 수 있습니다 ELFex 링커 , 난 그냥 발견 그것 정말 멋진 프로그램의 GUI 및 동적 실행에서 정적 실행 파일을 만들 수 있습니다.