코드가 라이브러리의 특정 기호를 참조하는 경우 연결을 실패하게 만드는 방법이 있습니까?특정 기호가 참조 된 경우 링크가 실패합니다.
나는 링커 스크립트 언어에 그러한 지시어가 있다는 것을 어렴풋이 기억하는 것 같지만 분명히 GNU LD가 아닙니다 (아마 잘못된 메모리 일 것입니다).
타사 라이브러리의 일부가 실수로 응용 프로그램에 링크되는 것을 방지하려면이 기능이 필요합니다. 그것이 링크되면, 런타임에 혼란을 야기하는 정적 이니셜 라이저를 추가합니다 (이것은 임베디드 프로젝트이므로 환경이 약간 이상합니다). 문제의 타사 라이브러리를 변경할 수 없습니다. 빌드 할 때 오류를 감지하고 싶습니다. 나는지도 파일을 구문 분석하고 문제가되는 부분을 발견하면 오류를 발행하는 포스트 빌드 스크립트를 작성할 수 있다고 생각하지만 위에서 언급 한 [false?] 메모리는 링커를 단독으로 사용할 수 없다는 것을 확인하도록합니다.
저는 GNU GCC 툴체인을 사용하고 있습니다. 여기
/* stubs.c */
void ERROR_DO_NOT_REFERENCE_THIS_SYMBOL(void);
void Offending3rdPartyFunction(void)
{
ERROR_DO_NOT_REFERENCE_THIS_SYMBOL();
}
가, 기호 ERROR_DO_NOT_REFERENCE_THIS_SYMBOL
이 정의되지 않습니다 : 점심 식사를 위해 밖으로 스테핑