http://blog.naver.com/cmsscv/130095956880
※빌드 전, 후에 exe, lib, dll, 이미지, 사운드 파일등을 원하는 위치에 복사하고 싶은때... 일일이 필요한 파일을 프로젝트 폴더에 복사해야되었다. 이런 작업들을 줄일 수 있는 방법을 소개하고자한다.
ex)dll파일을 컴파일 하였다. lib 파일과 dll 파일을 프로젝트 파일로 복사하거나 경로를 링커와 추가라이브러리 경로를 설정해줘야 한다.
-가장 효율적인 방법은 프로젝트 폴더에 lib, dll 폴더를 만들어 그곳을 각각 참조하는 것이 깔끔할것 같다.
-컴파일 할때 마다... 이작업을 해야된다.
-더이상 이런 방식으로는... 편한 방법을 찾다보니... Build Event를 통한 다양한 명령을 실행 할 수 있다는걸 알게 되었다.
-프로젝트에서 오른쪽 클릭 Properties > Configuration Properties > Build Event > Post-Build Event
-Command Line 에 xcopy ..\CreateDLL\*.h ..\D3DEngine /s /D 를 입력하고 컴파일을 하면 CreateDLL 폴더의 모든 헤더 파일을 D3DEngine 폴더에 복사한다는 명령이 실행된다. 이와 같이 다른 파일들도 복사가 가능하다.
※하지만....!!!!!!! 파일 갱신이 안된다. 그래서 찾은 방법은 삭제 후 복사 !!
★Pre-Build Event: 우선 경로에 파일이 있을 경우 모두 삭제 해줌으로서 업데이트가 안되는 파일이 없도록 한다.
-' 만약에 다음 경로에 dll 형식의 파일이 존재한다면 다음 경로에 dll파일들을 모두 삭제한다.'
IF EXIST "$(ProjectDir)..\Debug\*.dll" DEL "$(ProjectDir)..\Debug\*.dll"
IF EXIST "$(ProjectDir)..\Debug\*.lib" DEL "$(ProjectDir)..\Debug\*.lib"
IF EXIST "$(ProjectDir)..\D3DEngine\*.lib" DEL "$(ProjectDir)..\D3DEngine\*.lib"
IF EXIST "$(ProjectDir)..\D3DEngine\*.dll" DEL "$(ProjectDir)..\D3DEngine\*.dll"
IF EXIST "$(ProjectDir)..\D3DEngine\testdll.h" DEL "$(ProjectDir)..\D3DEngine\testdll.h"
IF EXIST "$(ProjectDir)..\D3DEngine\testlib.h" DEL "$(ProjectDir)..\D3DEngine\testlib.h"
☆Post-Build Event: 헤더파일과 컴파일된 파일들을 찾아서 최종 프로젝트 폴더에 복사한다.
-'다음 경로의 모든 같은형식의 파일을 다음 경로로 복사한다'
xcopy ..\CreateDLL\*.h ..\D3DEngine
xcopy ..\Debug\*.lib ..\D3DEngine
xcopy ..\Debug\*.dll ..\D3DEngine
//-업데이트가 되지 않는다.(파일이 존재하면 파일을 복사하지 않는다.)
copy ..\CreateDLL\*.h ..\D3DEngine
copy ..\Debug\*.lib ..\D3DEngine
copy ..\Debug\*.dll ..\D3DEngine
//-삭제 하고 다시 복사 할 필요가 없다!! 그냥 복사 시 업데이트가 된다.
빌드 이벤트 명령어
http://msdn.microsoft.com/ko-kr/library/c02as0cs(VS.80).aspx
'비주을스튜디오 Tip' 카테고리의 다른 글
pdb, Visual Studio 2003 Windows7에서 문제점들 해결하기 (0) | 2013.10.02 |
---|---|
Visual Studio C++ 컴파일 에러 C1004, C4819 (0) | 2013.06.10 |
다음 파일의 줄 끝에 일관성이 없습니다. 줄 끝을 정규화시키시겠습니까 (0) | 2013.04.28 |
비쥬얼 스튜디오에서 다중컴파일하기입니다. (0) | 2013.02.19 |
비주얼 스튜디오 작업한 파일 제출 요령 (0) | 2013.02.18 |