공유 라이브러리를 다른 라이브러리에 삽입하는 방법은 무엇입니까?

제길

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( 여기 지침 ).

또한 이렇게하면 라이선스에 영향을 미칠 수 있습니다. libBGPL에 따라 배포 된 경우 에 연결 libA하면 동일한 라이선스로 배포되어야하는 파생 작업이 생성됩니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Gradle 2.2.1로 내 항아리에 공유 라이브러리를 추가하는 방법은 무엇입니까?

분류에서Dev

React에서 라이브러리를 전역 적으로 공유하는 방법은 무엇입니까?

분류에서Dev

C ++에 공유 라이브러리를 포함하는 방법은 무엇입니까? libORB_SLAM

분류에서Dev

공유 라이브러리를 사용하는 디렉토리의 모든 라이브러리를 인쇄하는 방법은 무엇입니까?

분류에서Dev

공유 객체 라이브러리에 중단 점 x를 삽입 할 수 없습니다 (python은 C ++에서 .so 라이브러리를 사용함).

분류에서Dev

hp-ux에서 gcc로 공유 라이브러리를 만드는 방법은 무엇입니까?

분류에서Dev

hp-ux에서 gcc로 공유 라이브러리를 만드는 방법은 무엇입니까?

분류에서Dev

Wix : .XLL 파일을 Excel 버전에 따라 다른 Excel의 공용 라이브러리 폴더에 복사하는 방법은 무엇입니까?

분류에서Dev

GDB를 사용하여 공유 라이브러리를 디버깅하는 방법은 무엇입니까?

분류에서Dev

typescript에서 라이브러리를 가져 오는 다른 방법의 차이점은 무엇입니까?

분류에서Dev

라이브러리를 정적 / 공유 라이브러리가 아닌 내 앱 소스의 일부로 CMake 컴파일하는 방법은 무엇입니까?

분류에서Dev

Dart로 작성된 폐쇄 소스 Flutter 라이브러리를 공유하는 방법은 무엇입니까?

분류에서Dev

libusb를 공유 라이브러리로 컴파일하는 방법은 무엇입니까?

분류에서Dev

Android NDK 공유 라이브러리를 연결하는 방법은 무엇입니까?

분류에서Dev

공유 라이브러리로 gcc를 컴파일하는 방법은 무엇입니까?

분류에서Dev

공유 라이브러리에 중복 기호가있는 이유와 방법은 무엇입니까?

분류에서Dev

ocaml 라이브러리를 다른 언어에 가장 잘 노출시키는 방법은 무엇입니까?

분류에서Dev

상대 경로로 공유 라이브러리에 링크하는 방법은 무엇입니까?

분류에서Dev

실행 파일이 공유 라이브러리를 찾도록 돕는 방법은 무엇입니까?

분류에서Dev

로드 경로에 공급 업체 라이브러리를 포함하는 방법은 무엇입니까?

분류에서Dev

intellij에 json-simple 라이브러리를 추가하는 올바른 방법은 무엇입니까?

분류에서Dev

rpm이 내부에 제공되는 라이브러리를 알려주는 방법은 무엇입니까?

분류에서Dev

rpm이 내부에 제공되는 라이브러리를 알려주는 방법은 무엇입니까?

분류에서Dev

C 라이브러리에 C ++ 라이브러리를 포함하는 방법은 무엇입니까?

분류에서Dev

mysql 커넥터로 공유 객체 라이브러리 (* .so)를 만드는 방법은 무엇입니까?

분류에서Dev

Android aar 라이브러리 용 Google OSS 라이선스 플러그인에 라이선스 정보를 제공하는 방법은 무엇입니까?

분류에서Dev

다운로드 한 Python 라이브러리를 Windows에서 작동하는 방법은 무엇입니까?

분류에서Dev

iPhone 사진 라이브러리에 비디오를 다운로드하는 방법은 무엇입니까?

분류에서Dev

Angular에서 로딩 시간이 다른 여러 JS 라이브러리를 처리하는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    Gradle 2.2.1로 내 항아리에 공유 라이브러리를 추가하는 방법은 무엇입니까?

  2. 2

    React에서 라이브러리를 전역 적으로 공유하는 방법은 무엇입니까?

  3. 3

    C ++에 공유 라이브러리를 포함하는 방법은 무엇입니까? libORB_SLAM

  4. 4

    공유 라이브러리를 사용하는 디렉토리의 모든 라이브러리를 인쇄하는 방법은 무엇입니까?

  5. 5

    공유 객체 라이브러리에 중단 점 x를 삽입 할 수 없습니다 (python은 C ++에서 .so 라이브러리를 사용함).

  6. 6

    hp-ux에서 gcc로 공유 라이브러리를 만드는 방법은 무엇입니까?

  7. 7

    hp-ux에서 gcc로 공유 라이브러리를 만드는 방법은 무엇입니까?

  8. 8

    Wix : .XLL 파일을 Excel 버전에 따라 다른 Excel의 공용 라이브러리 폴더에 복사하는 방법은 무엇입니까?

  9. 9

    GDB를 사용하여 공유 라이브러리를 디버깅하는 방법은 무엇입니까?

  10. 10

    typescript에서 라이브러리를 가져 오는 다른 방법의 차이점은 무엇입니까?

  11. 11

    라이브러리를 정적 / 공유 라이브러리가 아닌 내 앱 소스의 일부로 CMake 컴파일하는 방법은 무엇입니까?

  12. 12

    Dart로 작성된 폐쇄 소스 Flutter 라이브러리를 공유하는 방법은 무엇입니까?

  13. 13

    libusb를 공유 라이브러리로 컴파일하는 방법은 무엇입니까?

  14. 14

    Android NDK 공유 라이브러리를 연결하는 방법은 무엇입니까?

  15. 15

    공유 라이브러리로 gcc를 컴파일하는 방법은 무엇입니까?

  16. 16

    공유 라이브러리에 중복 기호가있는 이유와 방법은 무엇입니까?

  17. 17

    ocaml 라이브러리를 다른 언어에 가장 잘 노출시키는 방법은 무엇입니까?

  18. 18

    상대 경로로 공유 라이브러리에 링크하는 방법은 무엇입니까?

  19. 19

    실행 파일이 공유 라이브러리를 찾도록 돕는 방법은 무엇입니까?

  20. 20

    로드 경로에 공급 업체 라이브러리를 포함하는 방법은 무엇입니까?

  21. 21

    intellij에 json-simple 라이브러리를 추가하는 올바른 방법은 무엇입니까?

  22. 22

    rpm이 내부에 제공되는 라이브러리를 알려주는 방법은 무엇입니까?

  23. 23

    rpm이 내부에 제공되는 라이브러리를 알려주는 방법은 무엇입니까?

  24. 24

    C 라이브러리에 C ++ 라이브러리를 포함하는 방법은 무엇입니까?

  25. 25

    mysql 커넥터로 공유 객체 라이브러리 (* .so)를 만드는 방법은 무엇입니까?

  26. 26

    Android aar 라이브러리 용 Google OSS 라이선스 플러그인에 라이선스 정보를 제공하는 방법은 무엇입니까?

  27. 27

    다운로드 한 Python 라이브러리를 Windows에서 작동하는 방법은 무엇입니까?

  28. 28

    iPhone 사진 라이브러리에 비디오를 다운로드하는 방법은 무엇입니까?

  29. 29

    Angular에서 로딩 시간이 다른 여러 JS 라이브러리를 처리하는 방법은 무엇입니까?

뜨겁다태그

보관