이 접근법을 제안합니다.
코드를 루트 폴더로 구성하십시오. 코드라고 부르 자.
이제 프로젝트 및 라이브러리를 하위 폴더 (예 : 프로젝트 및 라이브러리)로 지정하십시오.
라이브러리를 정상적으로 빌드하고 결과 헤더 및 .lib 파일을 공유 폴더 세트에 복사하는 빌드 후 단계를 추가하십시오. 예 : Libraries \ include 및 Libraries \ lib 하위 폴더 또는 명명 규칙 (myLib.lib, myLib_d.lib)을 사용하여 다른 빌드 (예 : 디버그 및 릴리스)를 구분하여 모든 lib 참조가 절대로 혼합 될 수없는 단일 파일을 명시 적으로 대상으로하도록하는 것이 좋습니다. 실수로 lib의 잘못된 변형에 연결되면 그것은 끔찍합니다!
또한이 폴더에 사용하는 타사 라이브러리를 복사 할 수도 있습니다.
참고 : 구성을 유지하려면 "Utils.h"가 아닌 #include "Math \ Utils.h"를 사용하여 파일을 포함 시키십시오. 그리고 전체 수학 라이브러리의 헤더를 include 폴더의 루트에 모두 놓기보다는 include \ Math에 넣으십시오. 이렇게하면 이름 충돌없이 많은 라이브러리를 가질 수 있습니다. 또한 다른 런타임 환경에서 코드를 멀티 타겟 할 수있는 여러 버전의 라이브러리 (예 : Photoshop 7, Photoshop 8)를 사용할 수 있습니다.
는 다음 두 가지 방법 중 하나를 사용하여 라이브러리를 참조하는 프로젝트를 설정 :)
1 libs와 글로벌 lib 디렉토리를 사용하여 IDE/컴파일러에게/경로를 포함한다. 즉, 각 PC에서 IDE를 한 번 설정하고 어떤 프로젝트에 대해서도 lib가 어디에 있는지 지정할 필요가 없습니다.
2) 또는 각 프로젝트가 고유 한 lib/include 경로를 사용하여 libs를 참조하도록 설정하십시오. 이렇게하면 유연성이 향상되고 모든 PC를 설치할 필요가 없지만 모든 새 프로젝트에서 동일한 경로를 설정해야합니다.
그리고 가장 중요한 부분 (최고 개발자의 PC의 수 대 프로젝트의 수에 따라 다름) : 당신이 참조 할 때 상대 경로를 사용하는이 /가 포함 libs가. 예 : Projects \ WebApp \ WebApp.proj에서 ".. \ .."를 사용하십시오.C : \ Code \ Libraries \ Include "대신"\ Libraries \ include "를 사용하면 다른 개발자와 buildserver가 소스 코드 (C : \ Code 대신 D : \ MyWork)를 가질 수 있습니다. 언젠가 C : \에 충분한 디스크 공간이 없거나 소스 컨트롤을 분기하고자하는 개발자를 찾으면 언젠가는 물어볼 것입니다.
* "includes/libs를 참조 할 때 상대적 paths "* ... 프로젝트에'../../ Libraries/Include'를 명시 적으로 추가하는 대신 머리말을 명시 적으로 참조하는 것이므로, Include를 이동하기로 결정하면 코드를 깨뜨리는 일이 없습니다. –
AppX가 사용할 때 어떻게됩니까? DatabaseUtils의 HEAD 버전이지만 AppY는 동일한 프로젝트의 r1234 이후 버전에 대해서는 작동하지 않습니다. 내가 boost1.2.3 및 boost1.2.4를 별도의 프로젝트로 말하고 싶을 때 솔루션이 정상적으로 작동합니다. 자주 uti lity 프로젝트는 아직 개발 중이며 새로운 변경 사항은 이전 응용 프로그램의 기능을 손상시킵니다. –
@gf : 내가 말한 의미는 ./../Libraries/Include가 INCLUDE_PATH에 있지만, #include는 다른 라이브러리 (예 : #include "Math \ Utils.h")의 하위 폴더를 사용합니다. 그렇지 않으면 하나의 폴더에 백만 개의 헤더를 넣어야하고 이름 충돌이있는 여러 파일이 생깁니다 (예 : 각 라이브러리에서 여러 가지 용도로 사용되는 "types.h") –