libA.so 를 생성하여 C ++ 함수를 파이썬으로 확장한다고 가정 하지만 libA.so 는 다른 공유 라이브러리 libB.so 에도 의존 합니다. libA.so가 이미 libB.so를 포함 ( 포함) 하는 방식으로 최종 사용자에게 배포하고 싶습니다 . 즉, 최종 사용자는 libB.so를 얻 거나 LD_LIBRARY_PATH가 포함 된 폴더를 가리 키도록 설정할 필요 가 없습니다. libB.so (이 라이브러리가 최종 사용자의 파일 시스템에있는 경우).
그래서 기본적으로 다른 (정적 또는 공유) 라이브러리를 참조하지 않는 공유 라이브러리 libA.so를 만들고 싶습니다.
질문 1 : 리눅스에서 이것을 할 수있는 방법이 있습니까?
질문 2 : distutils.core를 기반으로 python 설정 스크립트를 구성하여이 작업을 수행 할 수 있습니까? (아마도 질문 1이 이에 대한 답을 제공 할 것입니다)
감사
질문 1 : 리눅스에서 이것을 할 수있는 방법이 있습니까?
아니요. 일반적으로 UNIX 시스템 (AIX의 주목할만한 예외 포함), 특히 Linux는 "완전히 요리 된"및 "최종"을 고려 a.out
하고 libfoo.so
있습니다. 다시 연결할 방법이 없습니다.
다른 (정적 또는 공유) 라이브러리를 참조하지 않는 공유 라이브러리 libA.so를 만들고 싶습니다.
당신은 할 수 있습니다 연결하여 그렇게 할 객체 에 링크 된 것 libB.so
으로 libA.so
대신합니다.
그러나 사용자 libB.so
가 직접 연결하려는 경우 하나의 정의 규칙을 위반하지 않도록 각별히주의해야합니다 . 이는 모든 libB
의 symol을 내부 에 숨겨서 달성 할 수 있습니다 libA.so
( 여기 지침 ).
또한 이렇게하면 라이선스에 영향을 미칠 수 있습니다. libB
GPL에 따라 배포 된 경우 에 연결 libA
하면 동일한 라이선스로 배포되어야하는 파생 작업이 생성됩니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다