제 리눅스 컴퓨터 (Ubuntu Karmic)에서 완벽하게 실행되는 C++ 코드가 있습니다. 다른 버전에서 실행하려고하면 모든 종류의 공유 라이브러리가 없습니다.다른 리눅스 배포판에서 C++ 실행 파일과 관련된 문제가 발생했습니다.
모든 공유 라이브러리를 단일 실행 파일로 병합 할 수있는 방법이 있습니까?
편집 : 잘못된 질문을 한 것 같습니다. 이미 구축 된 실행 파일을 정적 링크하는 방법을 요청해야합니다. 내가 ermine & statifier
라이브러리를 먼저 정적으로 컴파일해야합니다! – Alex
시스템 라이브러리는 종종 정적 버전으로 제공됩니다. 그러나 동적 링크 라이브러리의 한 기능은 다른 커널 버전이나 다른 하드웨어와의 호환성을 보장하기위한 것이므로 여기에는 문제가 있습니다. 이 경우 정적 링크를 사용하면 동적 링크가 적절한 호환 버전을 선택하는 프로그램에서 오류가 발생할 수 있습니다. 또한 매우 적은 수의 라이브러리가 정적으로 링크 될 수 있다는 점에 유의하십시오. 귀하의 프로그램이 GPL 라이센스를받을 준비가되어 있지 않는 한, 귀하의 이익과 코드 비밀을 스스로 지키지 않는 한 괜찮습니다. –
@windfinder, 사실이지만, 유일한 방법 인 공유 라이브러리에 대한 의존성을 없애고 싶다면. 의존성을 현명하게 처리하려고 시도하는 다른 솔루션이 있지만, 모든 것을 단일 실행 파일로 병합하는 방법에 대해 sagie는 질문했습니다. – Trent