2010-04-08 6 views
1

여러 프로젝트가 포함 된 솔루션이 있습니다. 이 프로젝트 중 일부는 소스 파일을 공유합니다. 소스 파일을 공유하는 프로젝트가 함께 있도록 프로젝트 트리를 설정했습니다. 내 문제는 내가 깨끗한 짓을하고 공유 소스 파일을 빌드 할 때 모든 프로젝트에 대한, 다시 그들을 사용하는 최초의 컴파일뿐 아니라. 그 결과 초기 빌드가 오래 걸리며 모든 종속성을 만족시키기 위해 두 번 이상 빌드해야합니다 (다시 링크가 필요합니다). 프로젝트는 일련의 make를 사용하는 gcc 프로젝트의 포트입니다 빌드를 수행 할 파일. make 파일은 컴파일을 반복하지 않습니다. 위와 같은 상황을 처리 할 수있는 방법이 있습니까? 그렇기 때문에 Visual Studio에서 종속성을 만족시킬 수 있습니까? 문제는 소스 파일과 .idb 및 .pdb 파일 간의 종속성 때문입니까?동일한 솔루션의 다른 프로젝트에서 같은 obj 파일을 사용하는 방법

업데이트 : VS가 다른 DLL 및 LIB 이름을 사용하여 동일한 obj 파일에서 다시 연결하도록 VS에 지시하는 방법이 정말로 필요합니다. 다시 링크 프로젝트에 .obj 파일을 포함 시키면이 작업을 수행 할 수 있지만 디버그/릴리스 버전을 만드는 방법을 파악할 수는 없습니다. 프로젝트 파일의 섹션에서 $ (IntDir)은 파싱되지 않습니다. 그럼

dll1.lib dll1.dll에 ... 프로젝트 1에서

file1.c에서와 file2.c의 file3.c 링크, 프로젝트 2의 프로젝트 1에서 개체 파일은 다시 연결하세요 이번에는 으로 dll2.dll, dll2.lib

프로젝트 3 같은 것.

나는 이것을 MS 포럼에도 올렸지 만 대답을 아직받지 못했다.

+0

VS 2010 (Full 및 Express Edition 모두)에 대한 내 대답은 [Visual Studio 프로젝트 참조 란 무엇입니까?] (http://stackoverflow.com/a/23524630/269126) 및이 MSDN 가이드 : [연습 : 정적 라이브러리 만들기 및 사용 (C++) (영문) (http://msdn.microsoft.com/en-us/library/ms235627(v=vs.100).aspx) – Lumi

답변

1

코드를 재구성하여 공유 .obj 파일을 라이브러리 프로젝트로 빌드 한 다음 종속 프로젝트의 해당 라이브러리와 연결할 수 있습니다.

그게 문제를 해결할 수있는 유일한 "깨끗한"방법입니다 - 내가 생각할 수있는 다른 방법은 일반적으로 나쁜 생각 인 "싸우는"또는 "속이는"비주얼 스튜디오와 관련이 있습니다.

+0

나는 그것에 대해 생각해 보았지만 기존 오픈 소스 프로젝트의 포트 'make'시스템을 가능한 많이 모방하려고했습니다. – Steve

+0

또한 .obj 파일을 다른 소스 파일없이 프로젝트 파일로 포함 할 수 있으며 정상적으로 작동합니다. 유일한 문제는 'Debug'또는 'Release'빌드를 지정하는 방법이없는 것입니다. 다시 말해서 섹션에는 상대 경로가 하드 코딩되어 있어야합니다. – Steve

관련 문제