정적 이진 생성


14

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

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

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

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

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

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


1
목표는 단지 ​​전송의 용이성입니까 (즉, USB에 꽂고 해당 프로세서 아치로 어디든지 휴대)?
Mike Pennington

답변:


15

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

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

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


1
나는 Elf statifier를 시도했지만 놀랍습니다. 그것은 작동하지 않았다. 그것은 segfaults입니다. 유틸리티가 많은 배포판으로 많은 시간을 보냈습니다.
SHW

1
아마도 주소 무작위 화를 위해 segfaults 일 것입니다 : 여기에 설명되어 있습니다 : linux-magazine.com/Issues/2009/105/Ermine-vs.-Statifier
Rmano

0

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

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

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

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

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


당신의 대답은 모순되는 것처럼 보입니다. "... 아주 나쁜 생각입니다. 그러나 가능합니다"그리고 "... 기존의 동적으로 연결된 이진에서 정적으로 연결된 이진을 만드는 것은 불가능합니다"라고 말했습니다. 가장 도움이 될 것입니다.
JM 베커

@TechZilla : 정적 바이너리를 생성하는 것은 단지 동적으로 연결된 바이너리로부터 하나 생성하는 것만으로는 가능하지 않습니다 . 그러나 후자를 수행 할 수있는 능력에 대해서는 허용 된 답변을 참조하십시오. [참고 : 의견은 미래의 독자들을 위해 여기에있는 것을 비판하는 것보다 더 많은 것을 의도했습니다.]
lindes

-3

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


링크가 작동하지 않습니다.
Jakuje

링크가 저에게 효과적이며 질문에 직접 대답하는 것 같습니다. 스팸이 아니라고 제안합니다.
roaima

링크가 저에게 효과적입니다. 이 페이지에는 전문 프로그래머의 작업에서 예상 할 수있는 오타 / 문법 / 편집 오류가 다수 있습니다. 전문 웹 사이트에서 예상되는 것보다 피싱 이메일에서 예상되는 것보다 적습니다. 위의 게시물과 동일하게 생각하십시오. 이 새로운 사용자가 새로운 웹 사이트 인 것처럼 보이는 링크를 게시하기 위해 적시에 Stack Exchange에 가입 ​​한 것 같습니다.
G-Man, 'Reinstate
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.