저는 벤더가 제공 한 라이브러리를 사용하는 C 임베디드 펌웨어 프로젝트를 진행 중입니다. 예를 들어, TCP/IP 스택 라이브러리. 공급 업체는 이러한 라이브러리를 정기적으로 업데이트합니다. 그러나 우리는 특정 응용 프로그램을 위해 라이브러리에 많은 추가 및 사용자 지정을 수행했습니다.공급 업체 라이브러리 업데이트를 용이하게하는 방식으로 공급 업체 내장 라이브러리 수정?
일부 경우 이전 설계자가 라이브러리 원본 파일을 가져 와서 수정 한 다음 이름을 바꾸고 원본의 다른 폴더로 이동했습니다. 이는 파일을 추적하고 공급 업체 라이브러리 업데이트를 적용하기가 더 어려워 지므로 문제가되는 것 같습니다.
이 시나리오의 모범 사례는 무엇입니까? 즉, 원래 라이브러리 소스 파일에서 사용자 화를 분리 할 수 있습니까? 그리고 이것에 대한 성공적인 접근 방법은 무엇입니까?
나는 라이브러리를 라이브러리로 유지하는 경향이 있습니다. 공급 업체의 소스를 별도로 컴파일 한 다음 코드에서 링크하십시오. 이 경우에 라이브러리를 수정해야하는 경우가 아니라면 패치 대기열 또는 이와 유사한 (작업을 훨씬 어렵게 만들기) 코드를 별도의 라이브러리로 유지하는 것이 좋습니다. – nonsensickle
[patch] (http://linux.die.net/man/1/patch)에 대한 아이디어는 RPM과 다른 사람들이 * pristine * 소스와 작은 변경 사항을 처리하는 데 사용됩니다. 패치의 아이디어는 RPM에 내장되어 있습니다. 이는 패치의 범위와 항상 균형을 유지합니다. 또 다른 방법은 패치를 공급 업체에 제공하여 통합 할 수 있도록하는 것입니다. –