#include #include using namespace std; static int gs_num[53]; char g_buf1[190]; char g_buf2[232]; char g_buf3[] = "That's really a test!"; static char gs_buf1[233]; class Base { public: Base() { memset(buf, 1, 100); } ~Base() { } private: char buf[100]; }; Base g_base; static Base gs_base; void func() { static int s1[10]; static char s2[16] = "fs"; static int s3[20] = {15}; s1[10] = 3; int a = s1[0]+ s2[0]; } int main() { static int a[10] = {3}; static int b[10] = {4}; //func(); static Base base; static char temp[100]; static char temp1[39]; static Base base1; int c = a[0] + b[0]; cout< return 0; } 鍦╩ain鍏ュ彛澶勮緗柇鐐瑰悗鍐呭瓨甯冨眬濡備笅錛? 0x8049160 0x8049170 0x8049180 <_ZZ4mainE1b>: 4 0 0 0 0x8049190 <_ZZ4mainE1b+16>: 0 0 0 0 0x80491a0 <_ZZ4mainE1b+32>: 0 0 0 0 0x80491b0: 0 0 0 0 0x80491c0 <_ZZ4mainE1a>: 3 0 0 0 0x80491d0 <_ZZ4mainE1a+16>: 0 0 0 0 0x80491e0 <_ZZ4mainE1a+32>: 0 0 29542 0 0x80491f0 <_ZZ4funcvE2s2+8>: 0 0 0 0 0x8049200 <_ZSt4cout@@GLIBCXX_3.4>: 3086816908 3086816928 6 0 0x8049210 <_ZSt4cout@@GLIBCXX_3.4+16>: 4098 0 0 0 0x8049220 <_ZSt4cout@@GLIBCXX_3.4+32>: 0 0 0 0 0x8049230 <_ZSt4cout@@GLIBCXX_3.4+48>: 0 0 0 0 0x8049240 <_ZSt4cout@@GLIBCXX_3.4+64>: 0 0 0 0 0x8049250 <_ZSt4cout@@GLIBCXX_3.4+80>: 0 0 0 0 0x8049260 <_ZSt4cout@@GLIBCXX_3.4+96>: 0 0 8 134517288 0x8049270 <_ZSt4cout@@GLIBCXX_3.4+112>: 3086833084 0 0 3086827968 0x8049280 <_ZSt4cout@@GLIBCXX_3.4+128>: 3086829728 3086830428 3086830420 0 0x8049290 0x80492a0 0x80492b0 0x80492c0 0x80492d0 0x80492e0 0x80492f0 0x8049300 0x8049310 0x8049320 0x8049330 0x8049340 0x8049350 0x8049360 0x8049370 0x8049380 0x8049390 0x80493a0 0x80493b0 0x80493c0 0x80493d0 0x80493e0 0x80493f0 0x8049400 0x8049410 0x8049420 0x8049430 0x8049440 0x8049450: 0 0 0 0 0x8049460 0x8049470 0x8049480 0x8049490 0x80494a0 0x80494b0 0x80494c0 0x80494d0: 0 0 0 0 0x80494e0 <_ZL7gs_base>: 16843009 16843009 16843009 16843009 0x80494f0 <_ZL7gs_base+16>: 16843009 16843009 16843009 16843009 0x8049500 <_ZL7gs_base+32>: 16843009 16843009 16843009 16843009 0x8049510 <_ZL7gs_base+48>: 16843009 16843009 16843009 16843009 0x8049520 <_ZL7gs_base+64>: 16843009 16843009 16843009 16843009 0x8049530 <_ZL7gs_base+80>: 16843009 16843009 16843009 16843009 0x8049540 <_ZL7gs_base+96>: 16843009 0 0 0 0x8049550 <_ZGVZ4mainE5base1>: 0 0 0 0 0x8049560 <_ZL7gs_buf1>: 0 0 0 0 0x8049570 <_ZL7gs_buf1+16>: 0 0 0 0 0x8049580 <_ZL7gs_buf1+32>: 0 0 0 0 0x8049590 <_ZL7gs_buf1+48>: 0 0 0 0 0x80495a0 <_ZL7gs_buf1+64>: 0 0 0 0 ---Type 0x80495b0 <_ZL7gs_buf1+80>: 0 0 0 0 0x80495c0 <_ZL7gs_buf1+96>: 0 0 0 0 0x80495d0 <_ZL7gs_buf1+112>: 0 0 0 0 0x80495e0 <_ZL7gs_buf1+128>: 0 0 0 0 0x80495f0 <_ZL7gs_buf1+144>: 0 0 0 0 0x8049600 <_ZL7gs_buf1+160>: 0 0 0 0 0x8049610 <_ZL7gs_buf1+176>: 0 0 0 0 0x8049620 <_ZL7gs_buf1+192>: 0 0 0 0 0x8049630 <_ZL7gs_buf1+208>: 0 0 0 0 0x8049640 <_ZL7gs_buf1+224>: 0 0 0 0 0x8049650: 0 0 0 0 0x8049660 <_ZZ4mainE5base1>: 0 0 0 0 0x8049670 <_ZZ4mainE5base1+16>: 0 0 0 0 0x8049680 <_ZZ4mainE5base1+32>: 0 0 0 0 0x8049690 <_ZZ4mainE5base1+48>: 0 0 0 0 0x80496a0 <_ZZ4mainE5base1+64>: 0 0 0 0 0x80496b0 <_ZZ4mainE5base1+80>: 0 0 0 0 0x80496c0 <_ZZ4mainE5base1+96>: 0 0 0 0 0x80496d0: 0 0 0 0 0x80496e0 <_ZZ4mainE5temp1>: 0 0 0 0 0x80496f0 <_ZZ4mainE5temp1+16>: 0 0 0 0 0x8049700 <_ZZ4mainE5temp1+32>: 0 0 0 0 0x8049710: 0 0 0 0 0x8049720 <_ZZ4mainE4base>: 0 0 0 0 0x8049730 <_ZZ4mainE4base+16>: 0 0 0 0 0x8049740 <_ZZ4mainE4base+32>: 0 0 0 0 0x8049750 <_ZZ4mainE4base+48>: 0 0 0 0 0x8049760 <_ZZ4mainE4base+64>: 0 0 0 0 0x8049770 <_ZZ4mainE4base+80>: 0 0 0 0 0x8049780 <_ZZ4mainE4base+96>: 0 0 0 0 0x8049790: 0 0 0 0 0x80497a0 <_ZZ4funcvE2s1>: 0 0 0 0 0x80497b0 <_ZZ4funcvE2s1+16>: 0 0 0 0 0x80497c0 <_ZZ4funcvE2s1+32>: 0 0 0 0 0x80497d0: 0 0 0 0 0x80497e0: 0 0 0 0 0x80497f0: 0 0 0 0 0x8049800: 0 0 0 0 0x8049810: 0 0 0 0 0x8049820: 0 0 0 0 0x8049830: 0 0 0 0 0x8049840: 0 0 0 0 0x8049850: 0 0 0 0 鍏ㄥ眬鍙橀噺涓庨潤鎬佸彉閲忕殑鍞竴鍖哄埆鍦ㄤ簬閾炬帴灞炴э紝鍏ㄥ眬鍙橀噺涓哄閮ㄩ摼鎺ュ睘鎬э紝鍏ㄥ眬闈欐佸彉閲忥紙綾誨唴閮ㄧ殑闈欐佸彉閲忥級涓哄唴閮ㄩ摼鎺ュ睘鎬э紝鍑芥暟鍐呴儴鐨勯潤鎬佸彉閲忔棤閾炬帴灞炴с? 娉細瀵逛簬綾誨唴閮ㄧ殑闈欐佸彉閲忥紝綾誨悕鐩稿綋浜庝竴涓懡鍚嶇┖闂達紝鑰屽叏灞闈欐佸彉閲忕殑鍛藉悕絀洪棿涓猴細錛氾紙鍏ㄥ眬鍛藉悕絀洪棿錛夛紝鎵浠ュ畠浠湰璐ㄤ笂鏃犲樊鍒? 鍏ㄥ眬鍙橀噺鍜岄潤鎬佸彉閲忓唴瀛樺竷灞鍩烘湰鐩稿悓錛岃繖閲屼竴騫惰冭檻銆? 鍏ㄥ眬/闈欐佸彉閲忕殑鍐呭瓨鍒嗛厤涓昏鏄伒寰竴涓ぇ鐨勫師鍒欙紝灝嗗垵濮嬪寲鐨勫拰鏈垵濮嬪寲鐨勫彉閲忓垎寮瀛樻斁錛屽垵濮嬪寲鐨勫彉閲忚鏀懼湪鍏ㄥ眬鏁版嵁鍖猴紝鏈垵濮嬪寲鐨勫彉閲忔斁鍦˙SS孌碉紝榪欐牱鏈変竴涓ソ澶勶紝BSS孌靛湪鏂囦歡涓槸娌℃湁澶у皬鐨勶紝鍙湁涓涓湴鍧錛屾墍鏈夋湭鍒濆鍖栫殑鍏ㄥ眬闈欐佸彉閲忛兘鎸囧悜榪欎釜鍦板潃錛岃繖鏍峰彲浠ュ噺灝忔枃浠剁殑澶у皬銆傝屽湪榪愯鏃訛紝鎵嶄細涓築SS孌靛垎閰嶅唴瀛樼┖闂達紝騫朵笖鍏ㄩ儴鍒濆鍖栦負0錛屾墍浠ユ湭鍒濆鍖栫殑鍏ㄥ眬/闈欐佸彉閲忚澆鍏ュ唴瀛樺悗錛岄粯璁ゅ間負0銆? 鐒跺悗鎴戜滑鐪嬪唴瀛樺竷灞錛? 鍓嶉潰4涓彉閲忎緷嬈℃槸錛実_buf3錛宊ZZ4mainE1b錛宊ZZ4mainE1a鍜宊ZZ4funcvE2s2錛岀紪璇戝櫒鍦ㄧ紪璇戞椂涓轟簡闃叉鍚嶇О鍐茬獊錛屼細瀵瑰彉閲忓嚱鏁板悕榪涜鍚嶇О淇グ錛宭inux涓嬪彲鐢╟++filt宸ュ叿榪涜榪樺師銆? 榪樺師鍚庣殑鍙橀噺渚濇鏄細 g_buf3錛宮ain鍑芥暟涓殑闈欐佸彉閲廱銆乤鍜宖unc涓殑闈欐佸彉閲弒2銆? 榪?涓槸鍒濆鍖栦簡鐨勫叏灞/闈欐佸彉閲忥紝鎵浠ヨ鏀懼湪鍏ㄥ眬鍒濆鍖栧尯錛岃繖閲屾垜浠緱鍑轟互涓嬪嚑鐐圭粨璁恒? 1銆佸彲浠ュ彂鐜皊2鍜宻3閮借鍒濆鍖栦簡錛屽彲鏄彧鏈塻2琚垎閰嶅唴瀛樼┖闂達紝鑰宻3騫舵湭鍒嗛厤鍐呭瓨絀洪棿錛岃繖鏄洜涓簂inux涓負闈欐佸彉閲忓垎閰嶅唴瀛樻槸鏍規嵁璇ュ彉閲忔槸鍚﹁浣跨敤鏉ュ垽鏂殑錛屽鏋滀竴涓潤鎬佸彉閲忓畾涔夊悗錛屾湭鍙戠幇瀹冭鍏跺畠鍙橀噺寮曠敤浜嗭紝灝嗕笉浼氫負鍏跺垎閰嶅唴瀛樼┖闂淬? 2銆佸浜庡叏灞鍙橀噺錛屼笉綆″畠鏄惁琚嬌鐢ㄤ簡錛岄兘浼氫負鍏跺垎閰嶅唴瀛樼┖闂淬? 3銆佸湪鍑芥暟涓殑闈欐佸彉閲忥紝鍦ㄥ唴瀛樹腑鐨勯『搴忔伆鎭板拰瀹冧滑鍦ㄥ嚱鏁頒腑鐨勫0鏄庨『搴忕浉鍙嶏紙鐩墠灝氫笉鐭ヨ繖鏍峰仛鐨勫師鍥狅級銆? 榪欓噷鏈変竴涓枒闂紝g_base鍜実s_base榪欎袱涓彉閲忚鍒濆鍖栦簡錛屼負浠涔堝畠浠鏀懼湪鏈垵濮嬪寲鐨勫叏灞鏁版嵁鍖恒傝繖鏄洜涓篻_base鍜実s_base榪欎袱涓彉閲忔槸鍦ㄨ繍琛屾椂閫氳繃璋冪敤鏋勯犲嚱鏁拌鍒濆鍖栫殑錛屽湪緙栬瘧鏃舵垜浠槸鏃犳硶鐭ラ亾瀹冧滑鐨勫肩殑錛屾墍浠ュ湪緙栬瘧鏃跺畠浠篃琚斁鍦ㄤ簡BSS孌點傛墍浠ヨ繖閲屽緱鍑虹粨璁猴細 4銆佸叏灞/闈欐佺被鍙橀噺鍦ㄥ唴瀛樹腑琚斁鍦ㄦ湭鍒濆鍖栨暟鎹尯銆? 涓嬮潰鎴戜滑鐪嬬湅鏈垵濮嬪寲鏁版嵁鍖洪噷闈㈢殑鍙橀噺錛屼緷嬈℃槸 g_buf1銆乬_buf2銆乬_base銆乬s_base銆乵ain鍑芥暟鐨刡ase1銆乼emp1銆乥ase錛宖unc鍑芥暟鐨剆1銆? 鍙互鐪嬪埌g_base銆乬s_base鍊間笉涓?錛岃宐ase1錛宐ase鐨勫間負0錛屽洜涓烘垜鐨勬柇鐐規槸鍦╩ain鍑芥暟鍏ュ彛澶勮緗殑錛屾墍浠ュ叏灞綾誨彉閲忕殑鏋勯犲嚱鏁板凡琚皟鐢ㄨ繃浜嗭紝鑰宮ain鍑芥暟鍐呯殑綾誨彉閲忕殑鏋勯犲嚱鏁板皻鏈皟鐢紝浣嗘槸瀹冧滑鐨勫唴瀛樼┖闂村凡琚垎閰嶏紝榪欏嵃璇佷簡浠ヤ笂緇撹4銆?/p> 鍐呭瓨甯冨眬
鍒嗘瀽緇撴灉錛?/h3>
鏈榪戝湪寮凣CC鐨勯緙栬瘧澶達紝鐢–++寮鍙戝伐紼嬫渶闅句互蹇嶅彈鐨勫氨鏄箤榫熶技鍦扮殑緙栬瘧閫熷害錛岀敤VC寮鍙戝伐紼嬬殑鏃跺欙紝VC浼氶粯璁ゅ府鎴戜滑寮曞叆棰勭紪璇戝ご錛岄偅涔圙CC鍛紵鍏跺疄GCC涔熸槸鏀寔棰勭紪璇戝ご寰楋紝 http://lych.yo2.cn/articles/嫻呰皥gcc棰勭紪璇戝ご鎶鏈?html 榪欑瘒鏂囩珷灝辮緇嗚瑙d簡濡備綍GCC涓嬮緙栬瘧澶村緱涓浜涚煡璇? 鎵浠ュ叿浣撳浣曞湪GCC涓姞鍏ラ緙栬瘧澶?澶у鍙互鍙傝冭繖綃囨枃绔犮?
鍦ㄧ粰GCC娣誨姞棰勭紪璇戝ご鏃朵篃閬囧埌浜嗕竴浜涢棶棰橈紝騫朵笖瀵笴++/C鐨勭紪璇戞湁浜嗕竴浜涙柊鐨勮璇嗭紒
寰堝鍦╨inux涓嬪啓紼嬪簭鐨勪漢閮藉簲璇ョ湅榪囥婂拰鎴戜竴璧峰啓Makefile銆嬭繖綃囨枃绔狅紝閲岄潰璁茶繃濡備綍鍒╃敤GCC鐨?MM閫夐」鑷姩鐢熸垚渚濊禆錛?/p>
%.d: %.cpp
@$(GPP) -MM $(INCLUDE) $< > $@.tmp;\
sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.tmp > $@;\
rmf $@.tmp
榪欓噷鍒╃敤浜嗕竴涓ā寮忚鍒欙紝灝咰PP鏂囦歡渚濊禆鐨勫ご鏂囦歡鍐欏埌涓涓?d鏂囦歡涓紝鎵цMakefile鏃舵垜浠彧闇瑕乮nclude榪欎簺.d鏂囦歡錛孏CC灝變細鏍規嵁閲岄潰鐨勪緷璧栧叧緋繪潵鐢熸垚瀵瑰簲鐨?o鏂囦歡浜嗭紒
浣嗘槸瀹為檯涓奊CC鐨勮嚜鍔ㄦ帹瀵艱兘鍔涢潪甯稿己澶э紝鎴戜滑鍏跺疄鍙渶瑕佸啓涓嬩竴鏉¤繖鏍風殑妯″紡灝卞彲浠ヤ簡錛?
%.o:%.cpp
@$(GPP) $(CPPFLAGS) $< $(INCLUDE)
GCC灝變細鑷姩鎺ㄥ鍑篊PP鏂囦歡鎵闇瑕佷緷璧栫殑澶存枃浠惰繘琛岀紪璇戜簡錛?/p>
濡傛灉浣犲湪鑷繁鐨勫伐紼嬩腑鍔犲叆浜嗛緙栬瘧澶達紝浣犲氨蹇呴』浣跨敤涓嬮潰涓縐嶆ā寮忋?
涓句釜渚嬪瓙錛屾瘮濡備綘浠伐紼嬪紑鍙戜簡涓浜涘熀紜搴擄紝宸茬粡姣旇緝紼沖畾浜嗭紝闄や簡涓浜涘皯閲忕殑BUG FIX澶栵紝寰堝皯闇瑕佷慨鏀癸紝褰撲綘閫氳繃婧愮爜褰㈠紡寮曠敤鐨勬椂鍊欙紝浣犲綋鐒朵笉甯屾湜姣忔緙栬瘧鐨勬椂鍊欓兘鍘葷紪璇?
榪欎簺鍩虹搴擄紝濡傛槸浣犲喅瀹氬皢浠栦滑鍔犲叆棰勭紪璇戝ご涓幓錛屼絾鏄綋浣犱嬌鐢ㄧ涓縐嶆柟寮忓啓Makefile鐨勬椂鍊欙紝浣犲彂鐜拌浣犲姞鍏ュ埌棰勭紪璇戝ご涓殑澶存枃浠惰繕鏄閲嶅緙栬瘧浜嗭紝鍥犱負-MM閫夐」浼氭妸浣燙PP鏂囦歡
渚濊禆鐨勯潪緋葷粺澶存枃浠跺叏閮ㄦ斁鍦ㄥ搴旂殑.d鏂囦歡涓備絾鏄綋浣犱嬌鐢ㄧ浜岀Makefile鏃訛紝GCC鐪嬪埌涓涓緙栬瘧澶村悗錛屼粬涓嶄細鎸夌収甯歌鐨勬柟寮忓皢瀹冨睍寮錛岃屾槸鍥炲幓瀵繪壘瀵瑰簲鐨?gch鏂囦歡錛岀劧鍚庤繘琛岀紪璇戯紝
濡傛灉浣犳兂涓鎺㈢┒绔熺殑璇?緙栬瘧鍔犱笂-H閫夐」灝卞彲浠ョ湅鍑哄叾涓殑宸紓浜嗭紒
榪欐牱鐢熸垚鐨勯緙栬瘧澶村鏋滆浣跨敤鐨勮瘽錛岄渶瑕佸拰緙栬瘧CPP鏂囦歡浣跨敤鐩稿悓鐨勯夐」錛屽惁鍒欏悗鍑虹幇涓浜涘鎬殑緙栬瘧閿欒錛屾垜鐨勫仛娉曟槸鍐欎竴涓緙栬瘧澶村緱妯″紡錛?/p>
%.h.gch:%.h
$(GPP) $(CPPFLAGS) $< $(INCLUDE)