2009-11-13 4 views
2

짧은 질문은 내 솔루션에서 다른 프로젝트의 종속성으로 프로젝트를 설정하지 않고 프로젝트의 빌드 순서를 어떻게 변경합니까?프로젝트 종속성을 사용하지 않고 Visual Studio 2005 프로젝트 빌드 순서

1) C
2) 귀여운 프레임 워크를 사용하여 단위 테스트를 포함하는 정적 라이브러리로 작성된 실행 : 내 솔루션에서

, 나는이 개 프로젝트를 가지고있다. 나는 4 개 빌드 구성에있어

:

1) 디버그 - 내가 디버그 모드에서만 EXE 파일을 원한다. 정적 lib 프로젝트는 선택되지 않으므로 빌드되지 않습니다.
2.) 릴리스 - 릴리스 모드에서만 exe를 원합니다. 정적 lib 프로젝트는 선택되지 않으므로 빌드되지 않습니다.
) Unit Tests로 디버그 -이 경우에는 lib에 의존하기 때문에 정적 라이브러리를 빌드 한 다음 exe를 생성하십시오.
4) Unit Tests를 사용하여 릴리스 - 릴리스 3에있는 Ditto # 3.

실행 파일이 솔루션에없는 다른 libs 및 dll에 종속되어 있기 때문에 필자는 링커 설정에 추가 종속성을 나열했습니다. 유닛 테스트 빌드 구성에서 정적 lib도 실행 파일의 종속성 목록에 포함 시켰습니다.

여기에 문지르 기가 있습니다. 내가 지금까지 발견 한 유일한 방법은 빌드 순서를 변경하고 exe가 솔루션을 마우스 오른쪽 버튼으로 클릭하고 빌드 순서를 선택하기 전에 정적 라이브러리가 빌드되었는지 확인합니다. 이 대화 상자에서 빌드 순서를 변경하려면 종속성 탭을 사용해야한다고 나와 있습니다. 이것은 의미가 있습니다. 그러나 실행 파일을 정적 라이브러리에 따라 표시하면 실행 파일의 링커 종속성으로 정적 라이브러리가 자동으로 추가됩니다. 단위 테스트 빌드 구성에는 문제가 없습니다. 그러나 비 단위 테스트 빌드 configs에서는 정적 빌더에서 링크를 시도합니다. 빌드 전에 정리를 수행하면 삭제되고 링크가되지 않습니다. 빌드하지 않기 때문에 configs (또는 그 경우에 링크되어 있어야합니다).

즉, 종속성을 표시하지 않고 빌드 순서를 변경하는 방법이 있습니까? 단위 테스트 configs에 대한 빌드 순서를 설정하여 정적 라이브러리가 먼저 빌드되었는지 확인하고자합니다.

답변

3

당신은 라이브러리 의존성을 자동으로 포함을 해제 할 수 있습니다. 당신의 EXE의 속성 페이지에서

:

링커 -> 일반 -> 연결 라이브러리 종속성 -> 아니오

이것은 당신이 프로젝트 종속성을 지정하고, 따라서에 연결되는 정적 라이브러리없이 순서를 구축 할 수 없습니다

+0

고맙습니다. 나는 전에 그 설정을 발견하지 못했습니다. 그건 완벽하게 작동합니다. –

+0

VS2013에서 링커 옵션을 찾으려면 어떻게합니까? – CamHart

1

NAnt를 살펴 보겠습니다. 문제를 해결하는 개미 스크립트를 만드는 것이 가능할 수도 있습니다.

http://nant.sourceforge.net

+0

NAnt는 옵션이 될 수 있지만, 현재이 옵션을 사용하는 팀에서 사용하지 않기 때문에 나머지 프로젝트 팀이 나중에이 프로젝트를 수행해야 할 경우 설치해야합니다. 도움이되기 때문에 확실히 살펴볼 것입니다. –

0

'구성 별 설정'에 대한 답변 일 수 있습니다. lib가 실행 파일의 종속성이며 이것이 의미가있는 구성에만 적용되도록 지정할 수 있습니다.

+0

당신이 원하는 것은 정확히 내가 원하는 것입니다. 그러나 VS마다 구성 간 프로젝트 종속성을 설정하는 방법을 보지 못했습니다. 그래서 각 libs/dll을 링커 -> 입력 -> 추가 종속성에 배치했습니다. Soo Wei Tan의 제안은 위의 설정에서 훌륭하게 작동합니다. –

관련 문제