Linux에서 실행하려면 C 프로그램을 어떤 형식으로 내보내야 합니까?

Linux에서 실행하려면 C 프로그램을 어떤 형식으로 내보내야 합니까?

Windows에서는 애플리케이션을 게시합니다.. exe형식이 있으므로 C 프로그램이 있고 Linux용 애플리케이션을 게시하고 싶습니다. 어떤 형식으로, 어떻게 게시해야 합니까?

답변1

Linux에서 사용하는 주요 바이너리 형식은 다음과 같습니다.매우 낮은 주파수, 원래 Unix용으로 개발되었습니다. ld이 프로그램은 (협회) 개체 파일에서. Linux는 또한 다양한 실행 파일 형식을 지원할 수 있습니다. Windows "exe"(이식 가능한 실행 파일) 파일을 로드하고 실행하기 위해 사용자 정의 로더를 작성할 수 있습니다.

그런데 ".exe"는 형식이 아니라 파일 확장자입니다. 이전에는 Microsoft에서 최소한 두 가지 형식으로 제공되었습니다.이전 DOS "MZ" 형식그리고 최신Windows PE 형식. PE 형식은 "exe" 파일뿐만 아니라 "dll"(동적 라이브러리)도 다른 많은 파일과 마찬가지로 원칙적으로 동일한 구조를 갖습니다. 마찬가지로 Linux에서는 호출된 바이너리 파일이 ELF 형식일 뿐만 아니라 공유 동적 라이브러리도 ELF 형식이지만 일반적으로 이러한 라이브러리의 확장자는 ".so" 또는 ".so.1.3.4"(버전)입니다. 형식, 숫자는 버전을 나타냄) 라이브러리). 일반적으로 호출하는 바이너리에는 확장자가 없습니다. 실행 가능한 프로그램의 속성은 파일 시스템 속성 "executable"에서 파생되며 파일 이름(확장자)에서 추론되지 않습니다.

그러나 문제는 매우 광범위합니다. 바이너리 실행 파일을 생성하는 과정이 어떤 것인지 이해하려면 "linux c 프로그래밍 튜토리얼"을 검색해 보고 좀 더 구체적인 질문을 해보세요.

관련 정보