КонстрПЗ_ПI_ЛР2014_ч2
.pdf“ ”
6.050103 “& '” ( * )
2014
2
-
“/ 0 ” -
6.050103 “& '” ( * -). 1 22 / 4. 5. 5, 5. 5. 5, 7. . 8. –
'' : ;<, 2014. – 70 .
4: |
4. 5. 5, . . ., , |
|
5. 5. 5, . . ., , |
|
7. . 8, |
>: ?. 5. ?, . . ., *
@
: @. 2. A, . . ., *
'
*
& B 1
“20” 2014 .
3
........................................................................................................... |
5 |
|
1 1 ! " |
#"$%: nMake |
|
CMake ......................................................................................................... |
6 |
|
1.1 |
.......................................................................................... |
6 |
1.2 |
/ .............................................................. |
6 |
1.2.1 > ............................................................................... |
7 |
|
1.2.2 * make-* ............................................. |
7 |
|
1.2.3 > make-* ..................................................................... |
8 |
|
1.2.4 ; 0 .................................................................... |
10 |
|
1.2.5 CMake ............................................................................................... |
14 |
|
1.3 |
............................................................................. |
18 |
1.4 |
............................................................................................ |
19 |
1.5 |
/ ............................................................................ |
19 |
2 2 % ! .$/# 0 #1 |
|
|
" /2 %#$3. Mercurial................................................................... |
21 |
|
2.1 |
..................................................................................................... |
21 |
2.2 |
/ ............................................................ |
21 |
2.2.1 & ................................................................................ |
21 |
|
2.2.2 > K.................................................. |
22 |
|
2.2.3 5 Mercurial...................................... |
23 |
|
2.2.4 5 ............................................. |
24 |
|
2.2.5 > ' 0 Mercurial .................... |
26 |
|
2.3 |
............................................................................. |
32 |
2.4 |
............................................................................................ |
32 |
2.5 |
/ ............................................................................ |
33 |
3 3 % ! " % IDE Eclipse. |
|
|
% ! Apache Tomcat. % HTML.............................. |
34 |
|
3.1 |
..................................................................................................... |
34 |
3.2 |
/ ............................................................ |
34 |
3.2.1 5 IDE Eclipse ...................................................... |
34 |
|
3.2.1.1 > Eclipse ............................................................... |
35 |
|
3.2.1.2 Java Development Tools (JDT)...................................................... |
36 |
|
3.2.1.3 A ......................................................................... |
41 |
|
3.2.1.4 4 * Eclipse................................................... |
41 |
|
4 |
|
3.2.2 5 Apache Tomcat..................................................... |
43 |
|
3.2.3 5 HTML .................................................................................. |
45 |
|
3.2.3.1 5 HTML...................................................... |
45 |
|
3.2.3.2 ` HTML ........................................................................... |
46 |
|
3.2.3.3 . GET POST ....................................................... |
52 |
|
3.2.3.4 @ * GET POST .......... |
53 |
|
3.3 |
............................................................................. |
54 |
3.4 |
............................................................................................ |
55 |
3.5 |
/ ............................................................................ |
56 |
4 4 G ! " # %/#$%................................ |
58 |
|
4.1 |
..................................................................................................... |
58 |
4.2 |
/ ............................................................ |
58 |
4.2.1 ; 0 Eclipse...................................................................... |
58 |
|
4.2.2 ? Tomcat- ............................................................. |
60 |
|
4.2.3 5 e ........................................................................... |
61 |
|
4.2.4 ; 0 web- ............................................................ |
62 |
|
4.3 |
............................................................................. |
63 |
4.4 |
............................................................................................ |
65 |
4.5 |
/ ............................................................................ |
65 |
5 5 G ! " JSP .......................................... |
66 |
|
5.1 |
..................................................................................................... |
66 |
5.2 |
/ ............................................................ |
66 |
5.3 |
............................................................................. |
68 |
5.4 |
............................................................................................ |
69 |
5.5 |
/ ............................................................................ |
69 |
$#................................................................................................ |
70 |
5
NO
A K
* 0
.
@ *
0
0. , '
, -
. < , ,
. < -
, -
. & - ' e .
A ' ' K
* , ' K ’0
.
K :
–e ( 0 ,
, *, , i ,
, i K , );
–;
–;
–;
–;
–.
0 * A4 (210 x 297 ). < i 0 K . &
– 20 . 4 e 00 0 -
i 0 *.
& -
, ,
' , -
* K0
. ?
. A
,
.
6
1 P G G G P 1
P P G OG: QMAKE CMAKE
1.1 #
-
nmake. ; - 0 CMake.
1.2 "$ # # S$ %$. 1$
& ' . 1
e 0 IDE (Integrated Development Environment, i ), K, i
K – , i -
* ( )
IDE ( , Visual Studio). 5 -
' K nmake, -
Microsoft.
2 K *, -. Microsoft Visual C++ * K
:
–* .../Visualstudio/vc7/bin (cl.exe, link.exe
. .);
–*;
–:
–;
–pdb-*, i ( ) debug- . 5
' - , ' . < ' '
0
.
< , - K:
–*;
–0 ;
–.
5 ', IDE :
7
) , i K :
1)bin – *.exe;
2)include – *.h;
3)static_data – *.lib *.pdb;
4)dynamic_data – *.dll.
) :
1)build;
2)config;
3)src.
5 - -
, e -
, , CPP_BUILDER_HOME.
1.2.1 G# /$! Y$Z ! "
Make-* – * * nmake. 0 - e *.mak. u ' 0-
, . >-
, ' 0, cmd- .
Make-* 0 !IQCLUDE,
include C++. u '
, i 0 ( , * common.mak).
A ' '
make-*. < , K 0, , -
' 0 ' debug release K0
make-* ( 0
config):
–common.mak;
–dll_debug.mak;
–dll_release.mak.
1.2.2 ] /^ $ _ 1 Y$Z make-_ 3/
Make-* K . 0 :
VARIABLE_NAME = VARIABLE_VALUE
5 ' ' :
8
FIRST_VARIABLE = SOME_VALUE SECOND_VARIABLE = $(FIRST_VARIABLE)
4 ' ' . / 0 , i K #. v make-* – targets. Target – *-
, ' . ' targets ' -
0 ': target1:
#target1 command
target2:
#target2 command
target0 : target1 target2 #target0 command
target0 -
target1 target2, target1 target2.
' , target e-
target ' , e e. ;, K *.cpp *, -
*.obj. x i K , i K,
- *.cpp ' *.obj, '
*.cpp 0 target 0, i K
*.cpp *.obj.
7 e, ' -
. <, , cpp, obj.
? , , *.cpp *.obj, K
:
.cpp.obj: command
1.2.3 G# /$! Y$Z make-_ 3/$%
i ' -
make-*.
common.mak:
#*+,-./01+ 1/23и56-/.+
9
COMPILER=$(CPP_BUILDER_HOME)/bin/cl.exe COMPILER_DLL_RELEASE_FLAGS=/Ox /Og /D "WIN32" /D "_CONSOLE" /D "_WINDLL" /D "_MBCS" /D "_AFXDLL" /EHsc /MD /GS /W3 /nologo /c /Wp64 /TP
COMPILER_DLL_DEBUG_FLAGS=/Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_WINDLL" /D "_MBCS" /Gm /EHsc /RTC1 /MTd /Fd"$(BUILD_PATH)/$(PRODUCT_NAME).pdb" /W3 /nologo /c /Wp64 /ZI /TP
COMPILER_INCLUDES=/I"$(CPP_BUILDER_HOME)/include" /I"$(SRC_PATH)"
#*+,-./01+ 5и*1G.+
LINKER=$(CPP_BUILDER_HOME)/bin/link.exe LINKER_DLL_RELEASE_FLAGS=/NOLOGO /INCREMENTAL /SUBSYSTEM:console /MACHINE:X86 LINKER_DLL_DEBUG_FLAGS=/NOLOGO /INCREMENTAL /DEBUG /PDB:"$(BUILD_PATH)/$(PRODUCT_NAME).pdb" /SUBSYSTEM:console /MACHINE:X86
dll_debug.mak:
!INCLUDE common.mak
#Make-N+05, PG*G.и.QG2R0 ,1.и3-/2 и ,/SG.T+Uи0 +.PQ2G*-R
#1/23и56-/.+(COMPILER_FILE_SET) и 5и*1G.+(LINKER_FILE_SET).
#V26 W-/P/ N+05+(ARGS_FILE) /3.GSG56G-,6 X ,1.и3-G Y+3Q,1+. !INCLUDE $(ARGS_FILE)
#ZG.XR0 target X N+05G, Y*+[и-, /* \QSG- XR3/5*6-],6 3.и Y+-
3Q,1G nmake.
#^/2+*S+ W-/P/ target ,/,-/и- X 5и*1/X1G *+\/.+ *.obj, 3G.G- S+**/P/ X
#3G.G2G**/0 LINKER_FILE_SET. Z.и W-/2 и,3/5]YQ`-,6 15`[и 5и*- 1G.+, /3.GSG5G**RG
#X 3G.G2G**/0 LINKER_DEBUG_FLAGS. a56 -/P/, [-/\R *+2 \R5/ [-/ 5и*1/X+-],
#,*+[+5+ *+S/ W-/ [-/--/ 3/5Q[и-]. a56 W-/P/ XR,-+X56G2 Y+Xи- ,и2/,-] /-
#*+\/.+ target c .+,bи.G*иG2 obj. c+1 1+1 /3.GSG5G*/ 3.+Xи5/
#3/5Q[G*и6 *.obj иY *.cpp, S56 1+TS/P/ target иY ,3и,1+ Y+Xи- ,и2/,-и \QSG-
#XRYX+*+ 1/2+*S+ иY 3.+Xи5+ .cpp.obj all: $(COMPILER_FILE_SET)
"$(LINKER)" $(LINKER_DLL_DEBUG_FLAGS) - OUT:$(BUILD_PATH)/$(PRODUCT_NAME).dll /DLL $(LINKER_FILE_SET)
#Z.+Xи5/ 3/,-./G*и6 *.obj иY *.cpp. dR3/5*6G- 1/23и56eи` , N5+P+2и,
10
#/3.GSG5G**R2и X 3G.G2G**/0 COMPILER_DEBUG_ARGS. fSG,] и,- 3/5]YQG-,6
#,5QTG\*+6 3G.G2G**+6 $*. g*+ /Y*+[+G- 3Q-] и и26 -G1QUGP/ #target \GY .+,bи.G*и6. c+1 1+1 X W-/ 3.+Xи5/ 3G.GS+`-,6 target XиS+
#*.obj, 3.и2G*G*иG 1 *G2Q XR.+TG*и6 $*.cpp 3./,-/ S+,- *+2
#3Q-] и и26 *.cpp N+05+, 1/-/.R0 S/5TG* \R-] /-1/23и5и./X+*.
.cpp.obj:
"$(COMPILER)" $(COMPILER_DLL_DEBUG_FLAGS) $(COMPILER_INCLUDES) $*.cpp /Fo"$(BUILD_PATH)/"
dll_release.mak:
!INCLUDE common.mak !INCLUDE $(ARGS_FILE)
#hSи*,-XG**/G /-5и[иG W-/P/ target /- +*+5/Pи[*/P/ иY dll_debug.mak
#,/,-/и- X -/2, [-/ 3.и 5и*1/X1G и,3/5]YQ`-,6 N5+Pи, /3.GSG- 5G**RG X
#3G.G2G**/0 LINKER_DLL_RELEASE_FLAGS. all: $(COMPILER_FILE_SET)
"$(LINKER)" $(LINKER_DLL_RELEASE_FLAGS) - OUT:$(BUILD_PATH)/$(PRODUCT_NAME).dll /DLL $(LINKER_FILE_SET)
#hSи*,-XG**/G /-5и[иG W-/P/ 3.+Xи5+ /- +*+5/Pи[*/P/ иY dll_debug.mak
#,/,-/и- X -/2, [-/ 3.и 1/23и56eии и,3/5]YQ`-,6 N5+Pи, /3.G- SG5G**RG X
#3G.G2G**/0 COMPILER_DLL_RELEASE_FLAGS.
.cpp.obj:
"$(COMPILER)" $(COMPILER_DLL_RELEASE_FLAGS) $(COMPILER_INCLUDES) $*.cpp /Fo"$(BUILD_PATH)/"
8 ARGS_FILE, i
COMPILER_FILE_LIST LIQKER_FILE_LIST, '
BUILD_PATH, PRODUCT_QAME SRC_PATH 00
0 . & '. CPP_BUILDER_HOME – , i K e -
( . i).
1.2.4 2% Z "
:
–0 ( -
CPP_BUILDER_HOME );