Professional Documents
Culture Documents
A02 Compile
A02 Compile
Bin dch
n n
Ch hng dn bin dch trong mi trng Unix, sinh vin t tm hiu i vi cc mi trng lp trnh khc. Ta s s dng g++ dch cc chng trnh C++. g++ foo.cpp bin dch foo.cpp cho kt qu l file chy c a.out g++ -o foo foo.cpp bin dch foo.cpp cho kt qu l file chy c foo
2
VD: bin dch chng trnh program.cpp trong s dng mt lp c tn Picture thao tc cc hnh v Nn lu phn ci t ca lp Picture trong mt file ring, chng hn picture.cpp, :
to thun li cho vic s dng lp ny trong mt ng dng khc hai lp trnh vin c th d dng cng lm vic: mt ngi ci t lp Picture, ngi kia vit chng trnh chnh program.cpp khi chng trnh thay i, ch cn dch li file program.cpp, nh vy, qu trnh bin dch nhanh hn. i vi cc chng trnh ln, iu ny to s khc bit rt ln.
Ch : Theo thng l, cc file chng trnh C++ thng c kiu m rng ".cpp", ".cc", ".C", hoc ".cxx".
Nu ta khng mun ngi vit program.cpp bit chi tit ca lp Picture (v c th l b mt thng mi), ta cn tch giao din ca lp (phn khai bo) ra khi ci t ca lp. Mt khc, c th bin dch c, chng trnh chnh program.cpp cng cn bit v nh ngha ca lp Picture v cc phng thc ca lp . Gii php l m t lp Picture ti hai file
picture.h picture.cpp
Hoc
1> g++ -c picture.cpp 2> g++ -o program program.cpp picture.o
Nu program.cpp b thay i nhng Picture vn gi nguyn, th khi bin dch li, dng 1 l khng cn thit.
File m ngun
File object
Cc nh hng tin x l
n n n n n
Cc nh hng tin x l l cc lnh c tnh nng c bit c thc hin bi trnh tin x l trc khi m ngun c bin dch. Trong C++, cc nh hng tin x l bt u bng mt du # #include #define, #ifndef, #endif
n n
Cp ngoc nhn < > dng cho cc file header chun c tm kim trong cc th mc th vin chun. Cp du nhy dng cho cc file header ca ngi dng, s c tm kim trc ht trong th mc hin ti.
C th dng kho chuyn I (g++ -I) thay i ng dn tm kim. V d: g++ program.cpp I/home/tmct/my_include/
10
Cc th vin
n
n n
to mt file thc thi (executable file), trnh lin kt (linker) cn kt ni m ca cc hm c khai bo trong cc file header chun C++ (iostream.h, string.h, v.v..) Cc on m tng ng c th c tm thy trong cc th vin chun C++ Mt th vin l mt tp hp cc object file. Trnh lin kt la chn m object t cc th vin cha nh ngha cc hm c s dng trong cc file chng trnh v kt ni chng vo file thc thi (executable file). Mt s th vin c trnh lin kt C++ t ng s dng, chng hn th vin chun C++. Cc th vin khc phi c ch r trong qu trnh lin kt bng kho chuyn l. V d, trong mt s mi trng lp trnh, cn lnh sau lin kt vi th vin ton hc chun libm.a
g++ -o myprog myprog.o lm
11
#define
nh ngha mt nh danh
#ifdef
#ifdef DEBUG
#ifndef defined)
#endif gn nht
V d s dng
DEBUG c nh ngha, on trnh c bin dch ... #define DEBUG ... #ifdef DEBUG std::cerr << "Debug info: "; ... #endif ...
... //#define DEBUG ... #ifdef DEBUG std::cerr << "Debug info: "; ... #endif ...
13
14