반응형
여러 .so 공유 라이브러리 병합
예를 들어 a.so 및 b.so이 있다고 합시다.c.so을 a와 b가 내보내는 모든 기능을 가진 단일 공유 라이브러리로 만들 수 있습니까?물론 모든 내부 의존성(a.so에서 호출하는 모든 기능 및 그 반대)을 해결할 수 있습니다.
나는 노력했다.
gcc - shared - Wl , soname , c.so -o c.so a.so
효과가 없어요.
a.o와 b.o를 a.a와 b.a(a.o와 b.o를 수정할 수 없음)에 보관하고,
gcc - shared - Wl, soname, c.so -o c.so a.a b.a.
고마워요.
여러 공유 라이브러리를 하나로 병합하는 것은 AIX를 제외한 모든 UNIX에서 사실상 불가능합니다. 링커는 .so를 "최종" 제품으로 간주합니다.
그러나 아카이브를 .so에 병합하는 것은 문제가 되지 않습니다.
gcc -shared -o c.so -Wl,--whole-archive a.a b.a -Wl,--no-whole-archive
실제로는 불가능하다.
링커 관점에서 SO 라이브러리는 링크에 필요한 재배치 정보를 포함하지 않는 최종 제품입니다.
양쪽 라이브러리의 소스 파일 또는 오브젝트 파일 중 하나에 액세스할 수 있는 경우 이들 라이브러리에서 결합된 SO를 컴파일/링크하는 것이 간단합니다.
언급URL : https://stackoverflow.com/questions/915128/merge-multiple-so-shared-libraries
반응형
'programing' 카테고리의 다른 글
Vue 컴포넌트 테스트 - 모의 상태 및 방법 (0) | 2022.08.09 |
---|---|
Nvidia GPU에서 Java 사용(CUDA) (0) | 2022.08.09 |
사용자 지정 Axios 인스턴스를 가져올 때 Vuex 모듈이 작동하지 않음 (0) | 2022.08.09 |
vuejs 2의 메서드 내에서 뒤로 버튼을 처리할 수 있습니까? (0) | 2022.08.09 |
Vuex 스토리지의 데이터가 vue 구성 요소에 표시되지 않음 (0) | 2022.08.09 |