이번 진행중인 프로젝트를 하다보니까
6개의 DLL이 필요하게 되었다.
아무 무리 없이 잘 진행하고 있다가 가장 상위에 있는 DLL하나를 수정하게 되었는데
이때까지 잘 돌아가던 프로그램이 이유없이 에러를 내뱉는게 아닌가?
Dependency 문제인가 싶어 Depends 프로그램으로 봐도 문제는 없었다.
그래서 모든 DLL들을 다시 컴파일하기로 했다.
프로젝트 하나하나씩 열어 컴파일을 한다는것은 여간 짜증나는일이 아니었다.
배치파일을 이용해서 컴파일을 수행하기로 했다.
일단 각 프로젝트마다 *.mak을 만든다.
그리고나서 배치파일을 작성한다.
아래는 배치파일의 예이다.
----------------------------------------------------------------------------------------
REM *************************************************************
REM * Hole Drawing Batch Compile *
REM *************************************************************
cd "d:\project\hhi\datareader"
nmake %1 /C /f "d:\project\hhi\datareader\DataReader.mak" CFG="DataReader - Win32 Release"
cd "d:\project\hhi\draftent"
nmake %1 /C /f "d:\project\hhi\draftent\draftent.mak" CFG="DraftEnt - Win32 Release"
cd "d:\project\hhi\hole drawing\holedata"
nmake %1 /C /f "d:\project\hhi\hole drawing\holedata\holedata.mak" CFG="HoleData - Win32 Release"
cd "d:\project\hhi\hole drawing\layout"
nmake %1 /C /f "D:\Project\HHI\Hole Drawing\Layout\Layout.mak" CFG="Layout - Win32 Release"
cd "d:\project\hhi\hole drawing\holepre"
nmake %1 /C /f "d:\project\hhi\hole drawing\holepre\HolePre.mak" CFG="HolePre - Win32 Release"
cd "d:\project\hhi\hole drawing\holeanno"
nmake %1 /C /f "d:\project\hhi\hole drawing\holeanno\HoleAnno.mak" CFG="HoleAnno - Win32 Release"
cd ..
----------------------------------------------------------------------------------------
[NMAKE 파일 사용법]
Usage: NMAKE @commandfile
NMAKE [options] [/f makefile] [/x stderrfile] [macrodefs] [targets]
Options:
/A Build all evaluated targets
/B Build if time stamps are equal
/C Suppress output messages
/D Display build information
/E Override env-var macros
/HELP Display brief usage message
/I Ignore exit codes from commands
/K Build unrelated targets on error
/N Display commands but do not execute
/NOLOGO Suppress copyright message
/P Display NMAKE information
/Q Check time stamps but do not build
/R Ignore predefined rules/macros
/S Suppress executed-commands display
/T Change time stamps but do not build
/U Dump inline files
/Y Disable batch-mode
/? Display brief usage messag
6개의 DLL이 필요하게 되었다.
아무 무리 없이 잘 진행하고 있다가 가장 상위에 있는 DLL하나를 수정하게 되었는데
이때까지 잘 돌아가던 프로그램이 이유없이 에러를 내뱉는게 아닌가?
Dependency 문제인가 싶어 Depends 프로그램으로 봐도 문제는 없었다.
그래서 모든 DLL들을 다시 컴파일하기로 했다.
프로젝트 하나하나씩 열어 컴파일을 한다는것은 여간 짜증나는일이 아니었다.
배치파일을 이용해서 컴파일을 수행하기로 했다.
일단 각 프로젝트마다 *.mak을 만든다.
그리고나서 배치파일을 작성한다.
아래는 배치파일의 예이다.
----------------------------------------------------------------------------------------
REM *************************************************************
REM * Hole Drawing Batch Compile *
REM *************************************************************
cd "d:\project\hhi\datareader"
nmake %1 /C /f "d:\project\hhi\datareader\DataReader.mak" CFG="DataReader - Win32 Release"
cd "d:\project\hhi\draftent"
nmake %1 /C /f "d:\project\hhi\draftent\draftent.mak" CFG="DraftEnt - Win32 Release"
cd "d:\project\hhi\hole drawing\holedata"
nmake %1 /C /f "d:\project\hhi\hole drawing\holedata\holedata.mak" CFG="HoleData - Win32 Release"
cd "d:\project\hhi\hole drawing\layout"
nmake %1 /C /f "D:\Project\HHI\Hole Drawing\Layout\Layout.mak" CFG="Layout - Win32 Release"
cd "d:\project\hhi\hole drawing\holepre"
nmake %1 /C /f "d:\project\hhi\hole drawing\holepre\HolePre.mak" CFG="HolePre - Win32 Release"
cd "d:\project\hhi\hole drawing\holeanno"
nmake %1 /C /f "d:\project\hhi\hole drawing\holeanno\HoleAnno.mak" CFG="HoleAnno - Win32 Release"
cd ..
----------------------------------------------------------------------------------------
[NMAKE 파일 사용법]
Usage: NMAKE @commandfile
NMAKE [options] [/f makefile] [/x stderrfile] [macrodefs] [targets]
Options:
/A Build all evaluated targets
/B Build if time stamps are equal
/C Suppress output messages
/D Display build information
/E Override env-var macros
/HELP Display brief usage message
/I Ignore exit codes from commands
/K Build unrelated targets on error
/N Display commands but do not execute
/NOLOGO Suppress copyright message
/P Display NMAKE information
/Q Check time stamps but do not build
/R Ignore predefined rules/macros
/S Suppress executed-commands display
/T Change time stamps but do not build
/U Dump inline files
/Y Disable batch-mode
/? Display brief usage messag
댓글
댓글 쓰기