다른 라이브러리들 중에서도 libcurl
및 libxml2
에 대한 연결이 필요합니다. 우리는 이러한 관념을 관리하기위한 본질적으로 두 가지 전략을 갖고있는 것으로 보입니다.빌드 시스템에 어떤 종속성이 설치되어 있다고 가정 할 수 있습니까?
각 개발자에게 해당 라이브러리를 "일반적인"위치에 설치하도록 요청하십시오.
/usr/lib
또는프로젝트 소스 트리의 전용 폴더 아래에 이러한 라이브러리에 대한 소스를 포함하십시오.
접근법 1은 모든 사람이 해당 라이브러리가 시스템에 설치되어 있는지 확인해야하지만 많은 오픈 소스 프로젝트에서 사용되는 접근 방법 인 것으로 보입니다. 그러한 프로젝트에서 빌드는 해당 라이브러리가 누락되어 실패 할 것임을 감지합니다.
접근법 2를 사용하면 일부 경우 프로젝트 트리가 관리하기 어려울 정도로 커지고 컴파일 시간이 훨씬 길어질 수 있습니다. 또한,이 접근법은 분명히 너무 멀리 취할 수 있습니다. 예를 들어 프로젝트 트리 아래에 컴파일러를 두지 않을 것입니다 (맞습니까?).
외부 의존성에 대한 우수 사례는 무엇입니까? 모든 개발자가 특정 라이브러리를 설치하여 프로젝트를 구축 할 수 있습니까? 또는 프로젝트 트리에 모든 종속성을 포함하는 것이 더 나은 것으로 간주됩니까?