2013-02-20 5 views
0

나는 내 자신의 BSD 또는 Linux 배포판을 실험 중이다. 최종 사용자가 이해할 수있는 방식으로 시스템 파일을 구성하려고합니다. 필자는 그들이 시스템에 접근하기를 원한다.UNIX 공유 라이브러리를 단일 라이브러리로 병합 할 수 있습니까?

동적 링크를 잃지 않고 여러 동적 라이브러리를 단일 파일로 병합하는 방법이 있습니까? 모든 소스 파일에 액세스 할 수 있습니다.

+1

어느 클러 터? 모든 표준 .so 파일은 소수의 위치에 있습니다 ... –

+0

최종 사용자는 볼 수있는 사업이 없습니다. 그들은 모두 시스템 폴더 내에서 "Support"라는 파일의 큰 파일 돼지 (hog)로 병합되어야합니다. 암호 파일은 UNIX를 일반 사용자들에게 매우 위협적으로 만드는 요인입니다. –

+0

평균적인 사용자는'/ lib /'등을 둘러 볼 필요가 없습니다. –

답변

3

시스템에 따라 다르지만 적어도 ELF (Linux에서 사용하는 실행 가능 형식)에서는 가능하지 않습니다. ELF를 사용하면 공유 라이브러리는 실행 파일과 약간 비슷합니다. 링크 프로세스의 최종 생성물이며 분해되거나 다른 배치로 다시 링크되도록 설계되지 않았습니다.

많은 공유 라이브러리에 들어있는 모든 구성 요소의 소스가있는 경우이 모든 것을 하나의 거대한 공유 라이브러리로 모두 연결할 수 있지만 오브젝트 파일 (*.o) 또는 아카이브 라이브러리 *.a)를 입력으로 사용하여 이러한 라이브러리를 생성합니다.

의견에서 언급했듯이 사실 실제로이 작업을 수행하려는 좋은 이유는 없을 것입니다.

+0

감사합니다. 수천 개의 파일이 컴퓨터와 프로그래머에게 유용하지만 이러한 디렉토리와 파일을 볼 필요가없는 최종 사용자에게는 좋지 않습니다. 데이터의 추상화에 눈을 가리고 누수가됩니다. 배관 및 전기 배선을 쉽게보고 액세스 할 수있는 집에 살고 싶습니까? 그렇지 않다면 왜 컴퓨터에서 수락합니까? –

관련 문제