Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

라이브러리가 링크된 순서가 GCC에서 때때로 오류를 일으키는 이유는 무엇입니까?

<시간/>

기본적으로 이러한 종류의 오류는 컴파일 단계의 링커에서 발생합니다. 링커의 기본 동작은 현재 프로그램이 필요할 때 아카이브 라이브러리에서 코드를 가져오는 것입니다.

제대로 작동하려면 라이브러리가 순서대로 있어야 합니다. "호출자보다 먼저 호출자" 형식으로 있어야 한다고 말할 수 있습니다. 이 문제는 플래그를 사용하여 기본이 아닌 동작을 선택하여 해결할 수 있지만 이 과정에서 연결에 더 많은 시간이 걸릴 수 있습니다. 그렇지 않으면 라이브러리를 올바르게 주문하여 해결할 수 있습니다. Loaders와 tsort 이 두 가지는 순서를 재정렬하고 수정하는 데 도움이 될 수 있습니다.