내가 util을 모듈 foo는 및 으로 구성되어 있으며 다음과 같은 소스 트리가있는 라이브러리 foo는이 있다고 가정 foo.h에 정의되고 모든 전역 식별자는 foo_
또는 util_
으로 올바르게 접두어로 지정됩니다. 모듈 은 foo에 의해서만 사용됩니다. 다른 모듈과 이름 충돌을 막으려면 모듈 foo의 식별자 만 볼 수있는 (정적) 라이브러리를 만들고 싶습니다. 어떻게해야합니까?숨기기 비 API 기호
편집 : 인터넷을 상당히 광범위하게 검색했지만 놀라 울 정도로 이것은 컴퓨터 과학의 미해결 문제 중 하나 인 것으로 보입니다.
흥미로운 접근 방법입니다. 그러나, 나는 객체 파일 수준에서 작동하는 솔루션을 선호합니다. –
@AugustKarlstrom이 기본 설정을 확실히 이해할 수 있습니다. 그러나 이것은 링커 고유의 솔루션이라고 생각합니다. 세부 사항으로 내 대답을 편집했습니다. – Myst
링크 된 GNU ld 접근 방식은 내 보낸 기호 파일을 수동으로 관리해야합니다. 나는 util.o의 모든 심볼이 숨겨져 있어야한다고 말할 수 있어야합니다. –