- °³¿ä
- Precompiled Header
- ÄÄÆÄÀÏ ¹× ¸µÅ© ¿É¼Ç
- VC_EXTRALEAN ¹× WIN32_LEAN_AND_MEAN
- Çì´õ °¡µå
- Á¾¼Ó¼º °Ë»ç½Ã üũÇÏÁö ¾ÊÀ» ÆÄÀÏ ¸ñ·Ï ÁöÁ¤Çϱâ
- ¸µÅ©
1 °³¿ä
Visual C++ÀÇ ºôµå ¼Óµµ¸¦ ºü¸£°Ô ÇÏ´Â ¹æ¹ýµéÀÌ´Ù.
2 Precompiled Header
ºôµå ¼Óµµ¸¦ ºü¸£°Ô Çϱâ À§Çؼ °¡Àå ¿ì¼±ÀûÀ¸·Î ÇØ¾ßÇÒ ÀÏÀÌ´Ù.
¹Ì¸® ÄÄÆÄÀÏµÈ Çì´õÀÇ ±â´ÉÀ» ½±°Ô(?) ¼³¸íÇÏÀÚ¸é... ¸ðµç ¼Ò½º(.cpp) ÆÄÀÏ¿¡ Æ÷Ç﵃ Çì´õ ÆÄÀÏ(.h)À» Çϳª Á¤ÇØ, ¹Ì¸® ÄÄÆÄÀÏÇØ¼ ij½Ã·Î ¸¸µé¾î µÎ°í, °¢°¢ÀÇ cpp ÆÄÀÏÀ» ÄÄÆÄÀÏÇÒ ¶§ ±× ij½Ã¸¦ Ȱ¿ëÇÏÀÚ´Â °ÍÀÌ´Ù.
¾îµð±îÁö³ª ij½ÃÀ̹ǷÎ, ÀÚÁÖ º¯Çϸé Àǹ̰¡ ¾ø´Ù. ±×·¯¹Ç·Î Àß º¯ÇÏÁö ¾Ê´Â, ´ëÇ¥ÀûÀ¸·Î <windows.h> °°Àº ÆÄÀÏÀÌ ´ë»óÀÌ µÈ´Ù°í ÇÒ ¼ö ÀÖ´Ù. ÇÁ·ÎÁ§Æ® ³»ºÎ¿¡¼µµ Àß º¯ÇÏÁö ¾Ê´Â ŸÀÔ Çì´õ °°Àº °ÍµéÀÌ ÀÖ´Ù¸é Æ÷ÇÔ½ÃÄѵµ ÁÁ´Ù. ´ëÇ¥ÀûÀ¸·Î STL Çì´õ ÆÄÀϵéÀ» Æ÷ÇÔÇÏ´Â °æ¿ì¸¦ µé ¼ö ÀÖ°Ú´Ù.
¹Ì¸® ÄÄÆÄÀÏµÈ Çì´õ¸¦ »ç¿ëÇÏ´Â °úÁ¤À» ¼ø¼´ë·Î µµ½ÄÈÇÏÀÚ¸é ´ÙÀ½°ú °°´Ù.
- ¹Ì¸® ÄÄÆÄÀÏµÈ Çì´õ·Î »ç¿ëÇÒ Çì´õ ÆÄÀϰú ¼Ò½º ÆÄÀÏÀ» Çϳª ¸¸µç´Ù. ÀÌ ÆÄÀÏÀ» pch.h, pch.cpp ¶ó°í ÇÏÀÚ.
- pch.h ÆÄÀÏ ³»ºÎ¿¡ ´ëÃæ ´ÙÀ½°ú °°Àº ³»¿ëµéÀ» Áý¾î³Ö´Â´Ù.
#pragma once
#include <windows.h>
#include <string>
#include <list>
...
- pch.cpp ÆÄÀÏ ³»ºÎ¿¡ ´ÙÀ½°ú °°Àº ³»¿ëÀ» Áý¾î³Ö´Â´Ù.
#include "pch.h"
- ¸ðµç ¼Ò½º ÆÄÀÏÀÇ Á¦ÀÏ ÀÂÊ ¶óÀο¡´Ù #include "pch.h" ±¸¹®À» Áý¾î³Ö´Â´Ù. ¿©±â¼ Á¦ÀÏ ÀÂÊ ¶óÀÎÀ̶ó´Â °ÍÀº ´Ù¸¥ include ±¸¹®À̳ª, ¼Ò½º°¡ #include "pch.h" ±¸¹®º¸´Ù ¸ÕÀú ³ª¿À¸é ¾È µÈ´Ù´Â ¸»ÀÌ´Ù.
- ÇÁ·ÎÁ§Æ® ¼Ó¼º --> C/C++ --> ¹Ì¸® ÄÄÆÄÀÏµÈ Çì´õ·Î °¡¼, ¹Ì¸® ÄÄÆÄÀÏµÈ Çì´õ ¸¸µé±â/»ç¿ë Ç׸ñÀ» ¹Ì¸® ÄÄÆÄÀÏµÈ Çì´õ »ç¿ë (/Yu)·Î ¹Ù²Ù¾îÁØ´Ù. ±×¸®°í ÆÄÀÏ·Î PCH ¸¸µé±â/»ç¿ë Ç׸ñ¿¡´Ù pch.h¶ó°í Àû¾îÁØ´Ù.
- pch.cpp ¸¦ ¼±ÅÃÇØ¼ ¼Ó¼º âÀ» ¿¬´Ù. C/C++ --> ¹Ì¸® ÄÄÆÄÀÏµÈ Çì´õ·Î °¡¼, ¹Ì¸® ÄÄÆÄÀÏµÈ Çì´õ ¸¸µé±â/»ç¿ë Ç׸ñÀ» ¹Ì¸® ÄÄÆÄÀÏµÈ Çì´õ ¸¸µé±â (/Yc)·Î ¹Ù²Ù¾îÁØ´Ù.
- ¸®ºôµåÇÑ´Ù.
3 ÄÄÆÄÀÏ ¹× ¸µÅ© ¿É¼Ç
- ÃÖ¼Ò ´Ù½Ã ºôµå : ÇÁ·ÎÁ§Æ® ¼Ó¼º --> C/C++ --> ÄÚµå »ý¼º --> ÃÖ¼Ò ´Ù½Ã ºôµå °¡´É --> ¿¹(/Gm)
- ÁõºÐ ¸µÅ© : ÇÁ·ÎÁ§Æ® ¼Ó¼º --> ¸µÄ¿ --> ÁõºÐ ¸µÅ© »ç¿ë --> ¿¹(/INCREMENTAL)
- µ¿Àû C ·±Å¸ÀÓ »ç¿ë : ÇÁ·ÎÁ§Æ® ¼Ó¼º --> C/C++ --> ÄÚµå »ý¼º --> ·±Å¸ÀÓ ¶óÀ̺귯¸® --> ´ÙÁß ½º·¹µå DLL(/MD) ¶Ç´Â ´ÙÁß ½º·¹µå µð¹ö±× DLL(/MDd)
4 VC_EXTRALEAN ¹× WIN32_LEAN_AND_MEAN
MFC À§Àڵ尡 »ý¼ºÇØ ÁÖ´Â ÇÁ·ÎÁ§Æ®¸¦ º¸¸é, stdafx.h ÆÄÀÏ¿¡ VC_EXTRALEAN ¹× WIN32_LEAN_AND_MEAN¸¦ Á¤ÀÇÇØÁÖ´Â °ÍÀ» º¼ ¼ö ÀÖ´Ù. ÀÌ °ªÀÌ ÇÏ´Â ¿ªÇÒÀº afxv_w32.h ÆÄÀÏÀ» º¸¸é ¾Ë ¼ö Àִµ¥ ´ÙÀ½°ú °°´Ù.
...»ý·«...
#ifndef WIN32_LEAN_AND_MEAN
#define WIN32_LEAN_AND_MEAN
#endif
...»ý·«...
#ifdef VC_EXTRALEAN
#define NOSERVICE
#define NOMCX
#define NOIME
#define NOSOUND
#define NOCOMM
#define NORPC
...»ý·«...
#endif //VC_EXTRALEAN
...»ý·«...
#include <windows.h>
...»ý·«...
NOxxx ½Ã¸®Á Á¤ÀÇÇØÁÖ´Â °ÍÀ» º¼ ¼ö ÀÖ´Ù. Áï MFC¸¦ »ç¿ëÇÏÁö ¾Ê´Â ¾ÖÇø®ÄÉÀ̼ǿ¡¼µµ, ÀÌ °ªµéÀ» windows.h ÆÄÀÏÀ» Æ÷ÇÔÇϱâ Àü¿¡ Á¤ÀÇÇØ ÁÖ¸é, ÇØ´ç ¼ºñ½º¿Í °ü·ÃµÈ Çì´õµéÀÌ ºüÁö°Ô µÈ´Ù´Â ¸»ÀÌ´Ù. windows.h ÆÄÀÏ¿¡ º¸¸é ´ÙÀ½°ú °°Àº NOxxx ½Ã¸®Áî°¡ ÀÖ´Â °É º¼ ¼ö ÀÖ´Ù.
/* If defined, the following flags inhibit definition
* of the indicated items.
*
* NOGDICAPMASKS - CC_*, LC_*, PC_*, CP_*, TC_*, RC_
* NOVIRTUALKEYCODES - VK_*
* NOWINMESSAGES - WM_*, EM_*, LB_*, CB_*
...»ý·«...
* NOPROFILER - Profiler interface.
* NODEFERWINDOWPOS - DeferWindowPos routines
* NOMCX - Modem Configuration Extensions
*/
5 Çì´õ °¡µå
¸ðµç Çì´õ ÆÄÀÏ¿¡ #ifndef #define ±¸¹® ¶Ç´Â #pragma once ±¸¹®À» »ç¿ëÇÑ´Ù. ±âº»ÀûÀÎ ³»¿ëÀ̰í, Visual C++¿¡¸¸ ±¹ÇѵǴ ³»¿ëµµ ¾Æ´Ï´Ù.
Çì´õ ÆÄÀÏÀ» Á¤ÀÇÇÒ ¶§ »Ó¸¸ ¾Æ´Ï¶ó, Æ÷ÇÔÇÒ ¶§µµ, Ãß°¡ÀûÀ¸·Î °¡µå¸¦ ½áÁÖ¸é ÁÁ´Ù. ´ÙÀ½°ú °°Àº Çì´õ ÆÄÀÏÀÌ ÀÖ´Ù°í ÇÏÀÚ.
#ifndef __SOMEHEADER_H__
#define __SOMEHEADER_H__
...»ý·«...
#endif // end of __SOMEHEADER_H__
ÀÌ ÆÄÀÏÀ» ´Ù¸¥ Çì´õ¿¡¼ Æ÷ÇÔÇÒ ¶§ ´ÙÀ½°ú °°Àº ¹æ½ÄÀ¸·Î ÇÏ´Â °ÍÀÌ´Ù.
#ifndef __SOMEHEADER_H__
#include "SomeHeader.h"
#endif
¿Ö ÀÌ·± ½ÄÀ¸·Î ÇÏ´Â °Ô Àǹ̰¡ ÀÖ´À³Ä Çϸé, Ãß°¡ÀûÀÎ °¡µå°¡ ¾øÀ» ¶§¿¡´Â ÄÄÆÄÀÏ·¯°¡ ÀÏ´Ü Çì´õ ÆÄÀÏÀ» ¿¾î¼ È®ÀÎÀ» ÇÏ°Ô µÈ´Ù. ±× Çì´õ ÆÄÀÏ ¾ÈÀÇ ³»¿ëÀ» ÀÌÀü¿¡ Æ÷ÇÔ½ÃŲ ÀûÀÌ ÀÖ°Ç ¾ø°Ç ¸»ÀÌ´Ù. ±×·±µ¥ °¡µå°¡ ÀÖÀ¸¸é µÎ¹øÂ°ºÎÅÍ´Â ¾Æ¿¹ ÆÄÀÏ ¿±â¸¦ ½ÃµµÇÏÁö ¾Ê°Ô µÈ´Ù. ±×·¡¼ ¾à°£À̳ª¸¶ »¡¶óÁø´Ù´Â ¸»ÀÌ´Ù. (»ç½Ç ¼ÓµµÀÇ Áõ°¡´Â ü°¨ÇÑ ÀûÀÌ ¾ø´Ù.)
ÀÌ¿¡ °üÇÑ »çÇ×Àº "Large-Scale C++ Software Design"À̶ó´Â Ã¥¿¡ Àß ³ª¿ÍÀÖ´Ù.
6 Á¾¼Ó¼º °Ë»ç½Ã üũÇÏÁö ¾ÊÀ» ÆÄÀÏ ¸ñ·Ï ÁöÁ¤Çϱâ
¼Ò½º ÆÄÀÏ¿¡¼ ¾î¶² Çì´õ ÆÄÀÏÀ» Æ÷ÇÔ(include)ÇÏ°Ô µÇ¸é, ±× ¼Ò½º ÆÄÀÏÀº ±× Çì´õ ÆÄÀÏ¿¡ Á¾¼ÓµÈ´Ù. ÀÌ·± °æ¿ì ¾Ë´Ù½ÃÇÇ Çì´õ°¡ º¯°æµÇ¸é, ¼Ò½º ¶ÇÇÑ ÄÄÆÄÀÏÇØ¾ß ÇÑ´Ù.
µð¹ö±× ¸Þ´º µîÀ» ÅëÇØ ÇÁ·Î±×·¥À» ½ÇÇàÇÏ´Â °æ¿ì, Visual C++Àº º¯°æµÈ Çì´õ ÆÄÀÏÀ» ÀÚµ¿À¸·Î °¨ÁöÇØ¼, »õ·Î ÄÄÆÄÀÏÇØ¾ßÇÒ ¼Ò½º ÆÄÀÏÀ» ã¾Æ³½´Ù. ¿©±â¼ »ý°¢ÇÒ ¼ö ÀÖ´Â °Ç, º¯°æµÇÁö ¾Ê´Â Çì´õ ÆÄÀÏ(´ëÇ¥ÀûÀ¸·Î ¿ÜºÎ ¶óÀ̺귯¸®ÀÇ Çì´õ ÆÄÀÏ)ÀÌ ÀÖÀ¸¸é, ±× ÆÄÀÏ¿¡ ´ëÇÑ Á¾¼Ó¼º °Ë»ç´Â »ý·«Çصµ µÈ´Ù´Â °ÍÀÌ´Ù.
...\Local Settings\Application Data\Microsoft\VisualStudio\7.1
À§ µð·ºÅ丮(2003ÀÇ °æ¿ì, 2002´Â ¾Æ¸¶µµ 7.0À̰ÚÁö) ¾È¿¡ º¸¸é, SysIncl.dat ÆÄÀÏÀÌ ÀÖ´Ù. ÀÌ ÆÄÀÏÀ» ÅØ½ºÆ® ÆíÁý±â·Î ¿¾î¼, ÇÑ ÁÙ¿¡ Çϳª¾¿ ¿ÏÀüÇÑ µð·ºÅ͸® À̸§(¿ÏÀüÇÑ Àý´ë °æ·Î)À» Ãß°¡Çϸé, ±× µð·ºÅ丮 ÇÏÀ§¿¡ ÀÖ´Â Çì´õ ÆÄÀϵ鿡 ´ëÇØ¼´Â Á¾¼Ó¼º üũ¸¦ »ý·«ÇÏ°Ô µÈ´Ù. (IDE¸¦ Àç½ÃÀÛÇÑ ÈÄ, ´Ù½Ã ºôµå¸¦ Çѹø ÇØ¾ßÇÑ´Ù.)
´ç¿¬ÇÏÁö¸¸, "´Ù½Ã ºôµå"¸¦ ¼öÇàÇÏ´Â °æ¿ì, Á¾¼Ó¼º üũ°¡ ÇÊ¿ä¾øÀ¸¹Ç·Î, "´Ù½Ã ºôµå"°¡ »¡¶óÁö´Â °ÍÀº ¾Æ´Ï´Ù.
±âº»ÀûÀ¸·Î Visual C++Àº VC7 µð·ºÅ丮 ¹× ±× ÇÏÀ§ µð·ºÅ丮¿¡ ÀÖ´Â ¸ðµç ÆÄÀÏ¿¡ ´ëÇØ¼´Â Á¾¼Ó¼º °Ë»ç¸¦ ÇÏÁö ¾Ê´Â´Ù.
7 ¸µÅ©
-
How Can I Build Faster?
ºôµå ½Ã°£ ´ÜÃà ¹æ¹ý¿¡ ´ëÇÑ ¼Ò°³. Visual Studio 2003¿¡ µþ·Á¿À´Â ÇÑ±ÛÆÇ MSDNÀÇ °æ¿ì, "ºôµå ½Ã°£ ´ÜÃà ¹æ¹ý"À¸·Î °Ë»öÇÏ¸é °°Àº ³»¿ëÀÌ ³ª¿Â´Ù.
-
IncrediBuild
·£ »ó¿¡ ÀÖ´Â ¿©·¯ ÄÄÇ»Å͸¦ Ȱ¿ëÇØ ºôµå ¼Óµµ¸¦ ¿Ã·ÁÁÖ´Â ¼Ö·ç¼Ç. Çѹø »ç¿ëÇØ ºÃ´Âµ¥, ¹º°¡ ¹®Á¦°¡ Á» ÀÖ¾ú´Ù. ¹öÀüÀÌ ¿Ã¶ó°¬À¸´Ï ³ª¾ÆÁ³À»Áöµµ. ¾Æ! »ó¿ëÀÌ´Ù.
SeriousMoin v1 (koMoinMoin 1.0a4 Modified)