나는 현재 자신의 중간 파일 (OBJ, PCH, ...)C++ 프로젝트간에 중간 파일 공유?
을 공유하는 것이 (정확히 같은 컴파일러 설정이 ) 두 가지 기본 비주얼 C++ 프로젝트를 수 있는지 알아 내려고 노력하고있어예는 데 도움이 될 것입니다
을이 정상적인 설정입니다 :
PROJECTS \ P1 \ p1.vcproj; p1.cpp; ...
\ Release_Intermediate_Dir \ p1.obj
\ tool1.obj
\ P2 \ p2.vcproj; p2.cpp; ...
\ Release_Intermediate_Dir \ p2.obj
\ tool1.obj
\ COMMON \ tool1.cpp; ...
어떤이 설정에 대해 :
PROJECTS \ P1 \ p1.vcproj (uses: p1.cpp; p1_main.cpp)
\ p1_test.vcproj (uses: p1.cpp; p1_test.cpp)
\ Release_Intermediate_Dir \ p1.obj (used by both projects p1 and test)
\ tool1.obj
\ p1_main.obj (only p1.vcproj)
\ p1_test.obj (only p1_test.vcproj
\ COMMON \ tool1.cpp; ...
, 동일한 중간 폴더를 두 개의 C++ 프로젝트에 사용할 수있어 obj
파일을 직접 공유 할 수 있습니까?
아니면 항상 정적 lib 프로젝트가 추가로 필요합니까? (지금까지 내가 이해, 정적 lib 디렉토리 obj
파일 just a container입니다.)
가 왜 이렇게할까요?이 블로그 게시물을보십시오 : Writing Unit Tests in Visual Studio for Native C++.
정적 실행 파일은 두 개의 다른 실행 파일 (주 함수 인 경우)을 사용하기 위해 정적 라이브러리를 사용합니다. (관리 된/CLI 관련 정보는 잊어 버려야합니다.) 이는 솔루션에 3 개의 프로젝트 (세 개의 프로젝트를 유지 관리해야 함)가 있다는 것을 의미합니다. 동일한 컴파일 설정으로 동일한 코드를 공유하지만 다른 주/시작 프로그램 장비.
사실 대칭 관계 IMHO입니다. 두 프로젝트 모두 코드를 공유합니다. (컴파일 컴파일 결과와 동일합니다.)하지만 링커는 각각 다른 링크를합니다. 나는 automake에 익숙하지 않다. 당신이 말하는 기능에 대한 링크를 추가 할 수 있을까? –
나는 automake 설명서가 그렇게 구체적이지 않은 것을 두려워한다.이것이 automake에서 어떻게 해결 될지 예제를 추가했습니다. – thiton