정적으로 링크 된 기호를 미리로드 할 수 있습니까? 기호가 동적으로 링크하는 경우정적으로 링크 된 C 기호 사전로드
리눅스, 나는
LD_PRELOAD=libSomeLibrary.so ./anExecutableLinkedToAnOtherLibrary
하지만이 단지 작품을 사용할 수 있습니다. 이제 심볼이 다른 라이브러리에 정적으로 링크 된 실행 파일에 일부 심볼을 주입해야합니다.
정적 기호가 인라인되었을 수도 있기 때문에 일반적인 경우에는 이론적으로 불가능하다는 것을 알고 있습니다. 그러나 최적화 및 전체 디버그 기호가 포함되지 않은 디버그 빌드가있는 경우 이론 상 올바른 위치에 기호를 삽입 할 수 있어야합니다.
나는 리눅스와 윈도우 세계 모두에 대한 답변에 관심이 있지만, 리눅스에서이를 해결하는 것만으로도 충분할 것이다.
당신이하려고하는 것이 조금 분명하지 않습니다. 오브젝트 파일/정적 라이브러리를로드 하시겠습니까? 당신은 항상 그 안에서 .so를 만들 수 있습니다. –
내가하려는 것은 이것이다 : 나는 몇몇 라이브러리 함수를 호출하는 실행 파일을 가지고 있으며 정적으로 링크되어있다. 실행 파일을 다시 컴파일하지 않고 어떻게 든이 함수를 재정의하려고합니다. – enobayram
정적으로 함수를 연결한다는 것은 무엇을 의미합니까? 이 함수들로 정적 라이브러리를 가지고 있습니까? 그렇다면 라이브러리는 전혀 링크되지 않고 나중에 링크 될 라이브러리에 저장됩니다. –