그것은 일부 링크—지만 모든 라이브러리에 정적으로 와 libtool?
-
20-09-2019 - |
문제
내가 일하는 프로젝트를 사용하여 구축된 autoconf,automake and libtool.프로젝트로에서는 바이너리 및 소스 형태입니다.
리눅스에서 기본적으로 구축하는 스크립트 모두에 대한 링크 라이브러리합니다.기 때문에 이것은 의미 리눅스 사용자에 의존 수 있습니다 그들의 배급의 패키지 관리자를 처리 종속성입니다.
윈도우 기본적으로 구축하는 스크립트 모두에 대한 링크 라이브러리를 사용하여 정적으로 libtool 의 -all-static
옵션입니다.기 때문에 이것은 의미 없음의 종속성을 제공하는 윈도우,그리고 그것은 도움이 배포할 수 있는 단일 이진을 포함하는 모든 종속성보다는 일 처리에 대한 배부 톤의 DLLs.
OSX 에서,일부 종속성 제공 OS,일부는 아닙니다.따라서는 것이 도움이 될 것 이에 대한 링크를 OS 제공되는 라이브러리를 동적으로 그리고 다른 라이브러리함으로써 해결합니다.불행하게도 libtool 의 모든 또는 아무것도 -all-static
옵션은 여기 있습니다.
이 있을 얻을 수있는 좋은 방법 libtool 링크 일 라이브러리에 정적으로,하지만 모두가?
참고:나는 깨닫 수 있게 컴파일하고 종속성하도록 만 정적 구축을 사용할 수 있습니다.그러나 나는 오히려한 빌드 시스템에 대한 내 프로젝트가 보고서에서 보다 자세한 내용을 일반적인 케이스의 정적 고 동적 구축의 종속성을 사용할 수 있어야 합니다.
참고:물론,나는 염려하지 않는 정말 낮은 수준의 종속성과 같은 C/C++런타임 라이브러리는 항상 연결을 동적으로 모든 세 가지의 위 플랫폼입니다.
해결책
몇몇 연구 내가 응답되는 내 자신의 질문입니다.
이 있는 경우 정적 및 동적 구축 라이브러리의 설치,당신은 링크 라이브러리를 사용하는 -l
매개변수,libtool 링크에 의해 기본 설정을 동적니다.그것은 링크를 정적 구축 없는 경우 동적인 구축할 수 있는 경우,또는 패스 -static
나 -all-static
옵션이 있습니다.
libtool 강제될 수 있습니다 링크를 정적 라이브러리 제공하여 전체 경로는 라이브러리에서 장소의 -l
옵션입니다.