锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲春色另类小说,国产精品中文字幕在线观看,国产日本欧洲亚洲http://www.shnenglu.com/sunicdavy/archive/2017/12/19/215432.html鎴橀瓊灝忕瓚鎴橀瓊灝忕瓚Tue, 19 Dec 2017 14:04:00 GMThttp://www.shnenglu.com/sunicdavy/archive/2017/12/19/215432.htmlhttp://www.shnenglu.com/sunicdavy/comments/215432.htmlhttp://www.shnenglu.com/sunicdavy/archive/2017/12/19/215432.html#Feedback0http://www.shnenglu.com/sunicdavy/comments/commentRss/215432.htmlhttp://www.shnenglu.com/sunicdavy/services/trackbacks/215432.html宓屽git搴撶殑綆$悊
浣跨敤git浣滀負(fù)婧愪唬鐮佺鐞嗘椂錛岀粡甯擱渶瑕佸湪涓涓猤it浠g爜搴撲腑浠庡緗戣幏鍙栨柊鐨刧it搴擄紝涔熷氨鏄湪git搴撲笅宓屽鍙﹀涓涓猤it搴撱傝屽悓鏃剁淮鎶や袱涓猤it搴撶殑榪囩▼灝卞彉鐨勯潪甯稿鏉傘?/div>
submodule鐨勫紛绔?/span>
甯歌鐨勫仛娉曟槸浣跨敤git 鎻愪緵鐨剆ubmodule鍔熻兘銆備絾submodule鐨勭鐞嗗祵濂梘it搴撶殑緇撴灉寰寰涓嶆槸鎴戜滑鏈熸湜鐨勭粨鏋溿傚亣璁炬湁涓涓猤it搴撳彨project錛屽湪project鐨勬煇涓瓙鐩綍涓嬭繕鍖呭惈涓涓彨3rd鐨勭洰褰曪紝鏄彟澶栦竴涓猤it搴撱?/div>
D:.
└─project
└─3rd
mytext.txt
鍋囪鐢插拰涔欓兘鍙栦簡(jiǎn)project鐨勪唬鐮侊紝鐢變簬鏃墮棿宸紓錛岀敳閫氳繃submodule鍙栧埌V1鐗堬紝鑰屼箼鍙栧埌浜?jiǎn)V2鐗堟湰銆傜敳涔欏悓鏃跺湪涓嶅悓鐨?rd搴撲笅榪涜寮鍙戯紝鍔垮繀浼?xì)閫犳垚涓嶅悓鐨勮繍琛岀粨鏋溿備篃璁鎬綘璁や負(fù)鍙互鍦ㄨ幏鍙杝ubmodule鏃舵寚瀹氱増鏈紝浣嗚繖涓幏鍙栬繃紼嬪緢闅炬帶鍒躲?/div>
涓鑸鏉ワ紝絎笁鏂瑰簱搴旂敱涓葷▼搴忚繘琛屾洿鏂板強(qiáng)緇存姢錛屼竴鑸儏鍐典笅錛岄」鐩病鏈夌壒孌婇渶姹傛椂錛屼笉浼?xì)闅忎究鏇存柊绗笁鏂瑰簱鍒版渶鏂扮増鏈紝鍥犳submodule鏇存柊宓屽鐨刧it搴撳茍涓嶆槸鐞嗘兂鐨勮В鍐蟲(chóng)柟妗堛?/div>
宓屽git搴撶殑淇敼鍙鎬?/span>
鍓嶉潰鐨勪緥瀛愪腑錛宲roject git搴撲笅鐨?rd鐨刧it搴撲腑濡傛灉鏈夋枃浠跺彂鐢熶慨鏀癸紝姝ゆ椂鍦╬roject鐩綍涓嬶紝浣跨敤sourceTree絳塯it綆$悊宸ュ叿鏃犳硶璇嗗埆3rd涓嬬殑鏂囦歡淇敼銆?/div>
涔熷氨鏄錛屾棤娉曞皢3rd涓嬬殑淇敼鎻愪氦鍒皃roject鐨刧it搴撲腑銆?/div>
緇堟瀬瑙e喅鏂規(guī)
姝ゆ椂錛?span style="font-weight: bold;">灝?rd鐩綍涓嬬殑.git鐩綍鏆傛椂縐誨嚭project鍜?rd鐩綍錛屾鏃訛紝鍦╬roject鐩綍鐢╯ourceTree鏌ョ湅鏃訛紝灝嗗彲浠ョ湅鍒?rd涓嬬殑鏂囦歡淇敼錛屾彁浜や慨鏀瑰埌project搴撲腑銆傚啀灝嗗垰縐誨嚭鍘葷殑3rd鐨?git鐩綍縐誨洖3rd鐩綍涓嬶紝鍦?rd鐩綍涓嬩嬌鐢╣it status錛屽皢鍙湅鍒?rd鐩綍鐨勪慨鏀癸紝鎻愪氦鏃訛紝浼?xì)灏嗕慨鏀规彁浜ゅ?rd鐩綍銆?/div>


]]>鍦╓indows涓嬭繍琛孡inux Shellhttp://www.shnenglu.com/sunicdavy/archive/2017/11/27/215373.html鎴橀瓊灝忕瓚鎴橀瓊灝忕瓚Mon, 27 Nov 2017 07:15:00 GMThttp://www.shnenglu.com/sunicdavy/archive/2017/11/27/215373.htmlhttp://www.shnenglu.com/sunicdavy/comments/215373.htmlhttp://www.shnenglu.com/sunicdavy/archive/2017/11/27/215373.html#Feedback3http://www.shnenglu.com/sunicdavy/comments/commentRss/215373.htmlhttp://www.shnenglu.com/sunicdavy/services/trackbacks/215373.html

瓚婃潵瓚婂鐨勪漢閫夋嫨鐢∕ac鎴栬匧inux鐜榪涜璺ㄥ鉤鍙伴」鐩紑鍙戙備絾鏄粛鐒舵湁澶ч儴鍒嗕漢涔?fàn)鎯簬鍦╓indows鐜涓嬭繘琛屽紑鍙戯紝姣曠珶Windows鍦ㄥ悇鏂歸潰浣跨敤榪樻槸杈冧負(fù)鏂逛究錛岀壒鍒儚鏂囦歡鐗堟湰綆$悊錛圙it錛孲VN絳夛級(jí)

鍦ㄨ法騫沖彴涓嬪紑鍙戞父鎴忔垨杞歡錛屽氨闇瑕佹湁涓濂楁柟渚跨殑鑷姩鍖栧伐鍏楓俉indows涓嬮渶瑕佷嬌鐢ㄦ壒澶勭悊錛岃櫧鐒舵湁PowerShell鍔犳寔錛屼絾榪欎笢瑗垮浜?jiǎn)涔熶笉闈犺氨锛屽彧鏈変竴涓鉤鍙拌兘鐢ㄣ傚ぇ瀹惰繕鏄範(fàn)鎯疞inux Shell銆傝繛Mac騫沖彴閮藉彲浠ョ敤Shell錛學(xué)indows涓婅鍋氳嚜鍔ㄥ寲鑴氭湰灝辨樉寰楅潪甯稿按灝?/p>

鎴戞浘緇忓湪欏圭洰涓嬌鐢╣o緙栧啓浜?jiǎn)涓濂楀皢閰嶇疆杞負(fù)鎵瑰鐞嗗拰Linux Shell鐨勫伐鍏楓備嬌鐢ㄨ繃紼嬭緝涓哄鏉傦紝浣嗘槸鑳借法騫沖彴榪涜琛ㄦ牸瀵煎嚭鍜屽崗璁紪璇戠瓑宸ヤ綔銆?/p>

浣嗘槸錛岃繖涓伐鍏瘋繕鏄渶瑕佸涓嶅悓鐨勫鉤鍙扮紪鍐欏濂楁ā鏉胯繘琛屼唬鐮佺敓鎴愶紝闈炲父綣佺悙銆傚鏋滄湁涓濂楄法騫沖彴鐨凷hell錛岀紪鍐欎竴嬈″氨鍙互璺ㄥ鉤鍙拌繍琛岄偅璇ュ濂姐?/p>

鏌ラ槄璧勬枡鍚庯紝涓鍏辨湁鍑犱釜鏂規(guī)錛?/p>

  1. 浣跨敤Python浣滀負(fù)鑷姩鍖栧伐鍏?榪欎釜鏂規(guī)鍏跺疄灝辨槸浣跨敤python鎶婃壒澶勭悊鍜孲hell騫茬殑浜嬫儏鐢ㄤ唬鐮佹潵瑙e喅銆備絾鍓嶆彁鏄閲嶆柊瀛︿範(fàn)Python錛屼篃闇瑕佷竴閮ㄥ垎鐔熸?zhèn)壗巰鍗曠殑Python璇硶錛屼漢涓哄涔?fàn)鎴愭湰杈冮珮锛屼篃姣旇緝璐逛簨銆?/p>

  2. 鑷繁緙栧啓涓濂楃嫭绔嬬殑鑷姩鍖栧伐鍏?榪欎釜鏂規(guī)闇瑕侀暱鏃墮棿鐨勯傞厤榪囩▼錛屽樊浠涔堟寚浠よˉ浠涔堟寚浠わ紝瀵歸」鐩繘搴︽湁涓瀹氬共鎵般?/p>

  3. 鑷繁緙栧啓Linux Shell鐨勮В閲婂櫒 榪欎釜灝辨洿闅句簡(jiǎn)錛岃鍋氬埌100%鍏煎錛屽熀鏈笉鍙兘銆?/p>

  1. 浣跨敤Cygwin鍜孧ingw 闇瑕佷竴涓井鍨嬭繍琛屾椂榪涜Linux Shell鐨勮В閲婏紝msys澶ф鏄?8M宸﹀彸錛屽彲琛屾ц緝楂樸?/li>

鍦ㄧ爺絀禖ygwin鍜孧ingw濡備綍鏁村悎鐨勮繃紼嬩腑錛屾垜璇搷浣滅偣鍑諱簡(jiǎn)涓涓猻h鍚庣紑鐨凩inux Shell錛岃繖鏄垜甯屾湜璁㎝ingw榪愯鐨凷hell銆傜粨鏋滃憿錛宻h鍚庣紑鐨勬枃浠跺眳鐒惰兘鍦╓indows涓嬭繍琛屻傛垜椹笂緙栧啓浜?jiǎn)涓緋誨垪鐨勪緥瀛愶紝鍙戠幇鍑犱箮瀹屽叏鍏煎甯哥敤鐨凷hell鎸囦護(hù)銆?緇忚繃鐮旂┒錛屾垜鍙戠幇Windows涓嬭兘榪愯sh鏂囦歡鏄敱Git鑷甫鐨刴sys2鎻愪緵鐨勩侻SYS2 錛圡inimal SYStem 2錛?nbsp;http://www.msys2.org/錛?/a> 鏄竴涓狹SYS鐨勭嫭绔嬫敼鍐欑増鏈紝涓昏鐢ㄤ簬 shell 鍛戒護(hù)琛屽紑鍙戠幆澧冦傚悓鏃跺畠涔熸槸涓涓湪Cygwin 錛圥OSIX 鍏煎鎬у眰錛?鍜?MinGW-w64錛堜粠"MinGW-鐢熸垚"錛夊熀紜涓婁駭鐢熺殑錛岃拷姹傛洿濂界殑浜掓搷浣滄х殑 Windows 杞歡銆?/p>

閭e氨鏄錛?span style="box-sizing: border-box; font-weight: 600;">鍙瀹夎浜?jiǎn)Git錛?a style="box-sizing: border-box; background-color: transparent; color: #0366d6; text-decoration-line: none;">https://git-scm.com/錛夛紝閭d箞灝卞彲浠ュ湪Windows涓嬬洿鎺ヨ繍琛孡inux Shell錛屽彧闇瑕佸皢鏂囦歡鍚庣紑鍛藉悕涓簊h鍗沖彲銆?/p>

闂繃鍛ㄨ竟鍙嬩漢鏄惁鐭ラ亾榪欎竴鍔熻兘錛岄兘璇寸煡閬擄紝鍙槸娌℃湁騫挎挱鑰屽凡錛屽鎴戠爺絀跺緢涔?#8230;…



]]>
浣跨敤Visual Studio Code璋冭瘯Golang宸ョ▼http://www.shnenglu.com/sunicdavy/archive/2017/04/20/214874.html鎴橀瓊灝忕瓚鎴橀瓊灝忕瓚Thu, 20 Apr 2017 04:52:00 GMThttp://www.shnenglu.com/sunicdavy/archive/2017/04/20/214874.htmlhttp://www.shnenglu.com/sunicdavy/comments/214874.htmlhttp://www.shnenglu.com/sunicdavy/archive/2017/04/20/214874.html#Feedback0http://www.shnenglu.com/sunicdavy/comments/commentRss/214874.htmlhttp://www.shnenglu.com/sunicdavy/services/trackbacks/214874.html浣跨敤Visual Studio Code璋冭瘯Golang宸ョ▼

  • 鏈綆鍗曠殑璋冭瘯鏀葷暐
  • 澶氶」鐩皟璇? 閫傜敤涓漢寮鍙戝拰欏圭洰寮鍙?/li>
  • 鏃犻渶淇敼緋葷粺鐜鍙橀噺
  • 鍑嗗VSCode

    鍦ㄥ畼緗戜笅杞芥渶鏂扮増鐨刅SCode:

    https://code.visualstudio.com/

    瀹夎Golang鎻掍歡

    • 鎵撳紑鎵╁睍闈㈡澘

      VSCode->鏌ョ湅->鎵╁睍

    • 鎵懼埌Go鎻掍歡 鍦ㄦ悳绱㈡閲岃緭鍏o, 鎵懼埌絎簩琛屽啓鏈?Rich Go language support for Visual Studio Code鐨勬彃浠? 鐐瑰嚮瀹夎

      娉ㄦ剰涓嶆槸鎺掑悕鏈楂樼殑

    • 閲嶅惎緙栬緫鍣?/p>

  • 鎵撳紑璋冭瘯闈㈡澘

    VSCode->鏌ョ湅->璋冭瘯

  • 娣誨姞璋冭瘯鐩爣

    鍦?娌℃湁璋冭瘯"鐨勪笅鎷夋涓偣鍑?娣誨姞閰嶇疆.."

  • 娣誨姞鐩爣璋冭瘯閰嶇疆

    渚嬪瓙:

    {
        "version": "0.2.0",
        "configurations": [
            {
                "name": "Launch",
                "type": "go",
                "request": "launch",
                "mode": "debug",
                "remotePath": "",
                "port": 2345,
                "host": "127.0.0.1",
                "program": "${fileDirname}",
                "env": {
                    "GOPATH":"D:/Develop/vscodegolang"
                },
                "args": [],
                "showLog": true
            }
        ]
    }
  • 鍏朵腑: "port", "host"閮芥槸go鎻掍歡鑷姩鐢熸垚鐨?/p>

    "env"涓鴻緗幆澧冨彉閲? 璁劇疆涓轟綘鐨勫伐紼嬬洰褰曞氨鍙互(鍖呭惈bin, src鐨勬枃浠跺す)

    鍑嗗璋冭瘯鎻掍歡

    姝ゆ椂鎵懼埌main.go鎸塅5, 浼?xì)鎶ラ敊鎻惤C?

    Failded to continue:"Cannot find Delve debugger. Install from https://github.com/derekparker/delve & ensure it is in your "GOPATH/bin" or "PATH"

    鎴戜滑浣跨敤go鍛戒護(hù)琛岀紪璇戣皟璇曞櫒

    go get github.com/derekparker/delve/cmd/dlv

    灝哾lv璋冭瘯鍣ㄦ斁鍦℅OPATH(宸ョ▼鐩綍)鐨刡in鐩綍涓?/p>

    閫変腑瑕佽皟璇曠殑main.go, 鐐瑰嚮F5, 鏃㈠彲浠ュ紑濮嬭皟璇?/p>

    璋冭瘯蹇嵎閿拰Visual Studio緋諱竴鑷?/p>

    • F9 鍒囨崲鏂偣
    • F10 Step over
    • F11 Step in
    • Shift+F11 Step out

    娉ㄦ剰鐐?/p>

    • 鏌愪簺緇撴瀯浣撴垚鍛樻棤娉曠洿鎺ユ樉紺烘椂, 鍙互鐩存帴閫変腑鍙橀噺鍚? 娣誨姞鍒扮洃瑙? 鎴栬呭彸閿偣鍑? "璋冭瘯:姹傚?

    鍦╨aunch.json涓彲浠ユ坊鍔犲緇勮皟璇曞叆鍙? 閫氳繃璋冭瘯闈㈡澘涓変腑瀵瑰簲鐨勯厤緗紑鍚笉鍚岀洰鏍囩殑璋冭瘯

    {
        "version": "0.2.0",
        "configurations": [
            {
                "name": "client",
                "type": "go",
                "request": "launch",
                "mode": "debug",
                "remotePath": "",
                "port": 2345,
                "host": "127.0.0.1",
                "program": "${fileDirname}",
                "env": {
                    "GOPATH":"D:/Develop/vscodegolang"
                },
                "args": [],
                "showLog": true
            },
    
            {
                "name": "server",
                "type": "go",
                "request": "launch",
                "mode": "debug",
                "remotePath": "",
                "port": 2345,
                "host": "127.0.0.1",
                "program": "${workspaceRoot}/src/server",
                "env": {
                    "GOPATH":"D:/Develop/vscodegolang"
                },
                "args": [],
                "showLog": true
            }
        ]
    }

    "program"涓殑"${fileDirname}"鏄互褰撳墠閫変腑鏂囦歡浣滀負(fù)鍚姩鐐?/p>

    鏇村緩璁嬌鐢?program"鐨?${workspaceRoot}", 浠ュ寘鍚嶄綔涓哄惎鍔ㄧ偣鐨勬柟寮忚繘琛岄厤緗?/strong>

    https://code.visualstudio.com/Docs/editor/debugging



    ]]>Go璇█鐨勫喎鐭ヨ瘑http://www.shnenglu.com/sunicdavy/archive/2016/11/02/214375.html鎴橀瓊灝忕瓚鎴橀瓊灝忕瓚Wed, 02 Nov 2016 03:09:00 GMThttp://www.shnenglu.com/sunicdavy/archive/2016/11/02/214375.htmlhttp://www.shnenglu.com/sunicdavy/comments/214375.htmlhttp://www.shnenglu.com/sunicdavy/archive/2016/11/02/214375.html#Feedback1http://www.shnenglu.com/sunicdavy/comments/commentRss/214375.htmlhttp://www.shnenglu.com/sunicdavy/services/trackbacks/214375.htmlappend, map, len涓嶆槸鍏抽敭瀛?/h1>

    浠栦滑鍏跺疄榪樻槸綾誨簱鍔熻兘, 閮藉湪buildin鍖呴噷鐨? 緋葷粺榛樿緇欎綘鍋氫簡(jiǎn)涓?/p>

    1. import(
    2. . "buildin"
    3. )

    灝哹uildin鐨勫寘鍐呭閮芥槧灝勫埌鍏ㄥ眬鑰屽凡, 鍏跺疄浣犱篃鍙互鐢ㄨ嚜宸辯殑鍖呰繖涔堝仛

    鎵撳嵃鐨勫彟涓縐嶅啓娉?/h1>

    鎯寵窡鑴氭湰涓鏍瘋皟璇曟墦鍗版暟鎹箞?

    1. println("hello world")

    鏃犻渶鍖呭惈浠諱綍鍖? 鍥犱負(fù)瀹冨湪buildin鍖呴噷

    iota涓嶆槸榛戠鎶

    榪欐槸鍦╞uildin鍖呴噷鐨勫畾涔?/p>

    1. // iota is a predeclared identifier representing the untyped integer ordinal
    2. // number of the current const specification in a (usually parenthesized)
    3. // const declaration. It is zero-indexed.
    4. const iota = 0 // Untyped int.

    鍏跺疄go鏄湁娉涘瀷姒傚康鐨?/h1>

    鎯蟲(chóng)兂map鍜屾暟緇勭殑瀹氫箟 
    鍙槸娉涘瀷娌℃湁寮鏀劇粰鐢ㄦ埛鐢ㄨ屽凡(鍙XX鏀劇伀,涓嶈XX鐐圭伅)

    map鏄敮鎸佸涓猭ey鐨? 鑰屼笖寰堟柟渚?/h1>

    榪樺湪涓哄涓猭ey杞琲d鐨勫鏉傜畻娉曡屽ご鐤間箞?

    1. type myKey struct{
    2. number int
    3. str string
    4. }
    5. func main(){
    6. t := map[ myKey] int {
    7. myKey{ 2, "world"}: 1,
    8. }
    9. fmt.Println(t[myKey{2, "world"}])
    10. }
    11. 杈撳嚭: 1

    鏋氫婦鏄彲浠ヨ漿鎴恠tring鐨?/h1>

    榛樿瀹氫箟涓涓灇涓?/p>

    1. type MyConst int
    2. const (
    3. MyConst_A MyConst = iota
    4. MyConst_B MyConst = iota
    5. )
    6. func main(){
    7. fmt.Println(MyConst_A)
    8. }

    杈撳嚭: 0 
    濡傛灉鎴戜滑鎯寵嚜鍔ㄥ寲杈撳嚭MyConst_A瀛楃涓叉椂 
    灝遍渶瑕佷嬌鐢╣olang鐨勪竴涓伐鍏烽摼:golang.org/x/tools/cmd/stringer 
    灝嗗叾涓嬭澆, 緙栬瘧鎴愬彲鎵ц宸ュ叿鍚? 瀵逛唬鐮佽繘琛岀敓鎴?nbsp;
    鐢熸垚鐨勪唬鐮佷細(xì)澶氬嚭涓涓獂x_string.go 
    閲岄潰灝辨槸鏋氫婦鐨凷tring()string 鍑芥暟

    涓存椂杞崲涓涓帴鍙e茍璋冪敤鐨勬柟娉?/h1>
    1. type love struct{
    2. }
    3. func (self*love)foo(){
    4. fmt.Println("love")
    5. }
    6. func main(){
    7. var chaos interface{} = new(love)
    8. chaos.(interface{
    9. foo()
    10. }).foo()
    11. }

    Golang鐨剅eceiver瀹為檯涓婂氨鏄痶his鐨勫彉縐嶅疄鐜?/h1>
    1. func( self*MyStruct) foo( p int ){
    2. }

    鍐欎笉鎯痳eceiver鐨勫啓娉? 濡傛灉榪欐牱鏀逛笅鍛?

    1. func foo( self *MyStruct, p int ){
    2. }

    鎵浠ヤ負(fù)浠涔堣Golang榪樻槸涓涓狢璇█鍢?/p>

    鍏充簬鍐呭瓨鍒嗛厤…

    • new 浼犲叆Type綾誨瀷, 榪斿洖*Type綾誨瀷
    • make 鍙互鍦ㄥ垎閰嶆暟緇勬椂璁劇疆棰勫垎閰嶅ぇ灝? new涓嶅彲浠?/li>
    • make 鑳藉垎閰嶆暟緇?map, 浣嗕笉鑳藉垎閰嶇粨鏋勪綋鍜屽師濮嬬被鍨?/li>
    • new 鑳藉垎閰嶆暟緇? map, 緇撴瀯浣撳拰鍘熷綾誨瀷絳夌殑鎵鏈夌被鍨?/li>
    • &Type絳夋晥浜巒ew
    • 鍒囩墖涓嶉渶瑕佸垎閰嶅唴瀛?make,new), 鐩存帴澹版槑灝卞彲浠ヤ簡(jiǎn)…

    Golang鐨勫弽灝勬棤娉曢氳繃涓涓被鍨嬪悕, 鍒涘緩鍏跺疄渚?/h1>

    C#鏈堿ssembly姒傚康, 鍙互鍦ㄤ竴涓狝ssembly閲屾悳绱? 鍒涘緩瀹炰緥

    Golang鏄潤(rùn)鎬佺被鍨嬭璦, 濡傛灉闇瑕? 鍙兘娉ㄥ唽浣犻渶瑕佸垱寤虹殑緇撴瀯浣? 鐒跺悗灝嗘敞鍐屽ソ鐨刴ap鐢ㄤ簬鍒涘緩

    Golang鍙互鏇挎崲Python鏉ヨ繘琛屽鏉傜殑宸ュ叿嫻佺▼澶勭悊

    濡傛灉浣犻渶瑕佽法騫沖彴鐨勫伐鍏鋒祦紼嬪鐞? 瀵筆ython涓嶇啛鎮(zhèn)? 鍙互浣跨敤

    1. go run yourcode.go 鍙傛暟1 鍙傛暟2

    鏂瑰紡鏉ヨ繘琛屽伐鍏峰鐞?nbsp;
    瑙夊緱鎱? 鍙互緙栬瘧鎴愬彲鎵ц鏂囦歡

    榪欐牱鍋氱殑濂藉: 濡傛灉鏈変簺綾誨簱鏈韓灝辨槸go鍐欑殑, Python鎯充嬌鐢ㄦ槸寰堥夯鐑?chǔ)鐨? 鑰孏olang鏉ュ啓鍒欒交鑰屾槗涓?/p>

    渚嬪瓙: 閫氳繃go鐨刾rotobuf搴? 瀵逛竴浜涙枃浠惰繘琛屽鐞?/p>

    Golang鍙互鑷姩鎸佹湁鏂規(guī)硶鐨勬帴鏀惰呭疄渚?/h1>
    1. type myType struct{
    2. }
    3. func (self*myType) foo( p int){
    4. fmt.Println("hello", p )
    5. }
    6. func main(){
    7. var callback func( int )
    8. ins := new(myType)
    9. callback = ins.foo
    10. callback( 100 )
    11. }

    鍋氳繃lua鐨凜++浠g爜緇戝畾鐨勭闉嬮兘娓呮: lua鍙敮鎸佸閮ㄩ潤(rùn)鎬佹垨鑰呭叏灞鍑芥暟璋冪敤 
    濡傛灉瑕佽繘琛孋++綾繪垚鍛樺嚱鏁拌皟鐢ㄦ椂, 瑕佽嚜宸卞鐞唗his鍜屾垚鍛樺嚱鏁?nbsp;
    榪欑鎶宸у洜涓烘棭璧風(fēng)紪璇戝櫒鐨勮櫄琛ㄤ笉鍚屽鉤鍙板疄鐜扮粏鑺備笉緇熶竴闇瑕佷笓闂ㄥ鐞?nbsp;
    鍚庨潰璺ㄥ鉤鍙拌櫄琛ㄧ粺涓鍚? 綾繪垚鍛樺嚱鏁扮殑璋冪敤鍐欐硶涔熸槸寰堟伓蹇?jī)澶嶆潅鐨?nbsp;
    浣嗘槸Golang鐨勫皬鐧藉紡鐢ㄦ硶, 鐩存帴鍚婃墦C++, 鐢氳嚦C#澶嶆潅鐨刣elegate

    LiteIDE綃? 澶氬紑縐樼睄

    • 鎵懼埌 鑿滃崟->鏌ョ湅->閫夐」->閫氱敤->瀛樺偍->瀛樺偍璁劇疆鍒版湰鍦癷ni鏂囦歡

    • 鍏抽棴LiteIDE

    • 澶嶅埗LiteIDE鏁翠釜鐩綍, 鍛藉悕鏂囦歡澶逛負(fù)浣犵殑宸ョ▼鍚?/p>

    • 姣忎釜宸ョ▼鎵鍦ㄧ殑LiteIDE鐨勯厤緗皢鏄嫭绔嬬殑, 涓嶄細(xì)浜掔浉騫叉壈

    LiteIDE綃? 嫻嬭瘯紼嬪簭涔熸槸鍙互璋冭瘯鐨?/h1>

    鍒互涓虹▼搴忎竴瀹氳鏄痬ain寮濮嬬殑鎵嶅彲浠ヨ皟璇?/p>

    Golang鐨勬祴璇曠▼搴忚櫧鐒墮兘鏄竴涓釜Test寮澶寸殑鍑芥暟,浣嗘墽琛実o test鏃? 榪樻槸鏈塵ain鍏ュ彛

    鍦↙iteIDE涓? 鍙互鍦?璋冭瘯->寮濮嬭皟璇曟祴璇曠▼搴忛噷榪涜嫻嬭瘯紼嬪簭璋冭瘯

    LiteIDE綃? 鍦╓indows涓婂彲浠ヨ緭鍑簂inux鍙墽琛屾枃浠?/h1>

    go鐨勫伐鍏烽摼榛樿鏀寔浜ゅ弶緙栬瘧 
    鍦↙iteIDE涓? 鍙互閫氳繃鍒囨崲杈撳嚭騫沖彴, 杈撳嚭涓嶅悓騫沖彴鐨勫彲鎵ц鏂囦歡



    ]]>Google Protobuf 3鐗堟湰浠嬬粛http://www.shnenglu.com/sunicdavy/archive/2016/01/25/212739.html鎴橀瓊灝忕瓚鎴橀瓊灝忕瓚Mon, 25 Jan 2016 06:23:00 GMThttp://www.shnenglu.com/sunicdavy/archive/2016/01/25/212739.htmlhttp://www.shnenglu.com/sunicdavy/comments/212739.htmlhttp://www.shnenglu.com/sunicdavy/archive/2016/01/25/212739.html#Feedback0http://www.shnenglu.com/sunicdavy/comments/commentRss/212739.htmlhttp://www.shnenglu.com/sunicdavy/services/trackbacks/212739.html鏈枃緙栧啓鏃? Google 瀹樻柟鐨?protobuf 鐗堟湰鏄?.0.0beta

    涓嬮潰浠嬬粛涓媝roto3鐨勪竴浜涚粏鑺傚彉鍖?/p>

    Proto3鐨勮娉曞彉鍖?/h1>

    璇硶鏍囪

    榪欎釜鐗堟湰鐨刾rotoc鐨刾rotobuf緙栬瘧鍣ㄥ凡緇忓彲浠ユ敮鎸乸roto2璇硶鍜宲roto3鐨勮娉?/p>

    濡傛灉浣犵殑proto鏂囦歡娌℃湁娣誨姞syntax璇存槑鐨勮瘽, 鐢ㄨ繖涓増鏈殑緙栬瘧鍣ㄤ細(xì)鎶ラ敊, 鎻愮ず浣犻粯璁roto2鏀寔, 璇鋒坊鍔犺娉曟爣璁?/p>

    syntax = "proto2";

     

    optional涓嶉渶瑕佷簡(jiǎn)

    鍙繚鐣檙epeated鏍囪鏁扮粍綾誨瀷, optional鍜宺equired閮借鍘繪帀浜?/p>

    瀹為檯浣跨敤璇佹槑, required鐨勮璁$‘瀹炴槸铔嬬柤, C++鐨勮皟璇曠増浼?xì)寮瑰嚭assert,release鐗堝拰optional涔熸病鍟ュ尯鍒?/p>

    map鏀寔

    map緙栧啓鏍煎紡涓?/p>

    map<key_type, value_type> map_field = N;
    渚嬪:
    map<string, Project> projects = 3;
    浠g爜鐢熸垚紜鏀寔map, 榪欏浜庡緢澶氳璦鏉ヨ鍙堝彲浠ュ伔鎳掍簡(jiǎn)

    瀛楁default鏍囪涓嶈兘浣跨敤浜?/h2>

    浣嶄簬proto2璇硶鐨勫瓧孌祅umber鍚庣殑[default=XX]

    榪欎釜涓滆タ涓嶈兘鐢ㄤ簡(jiǎn), 鐞嗙敱鏄?

    瀵逛簬鍚屼竴孌靛簭鍒楀寲鍚庣殑鏁版嵁, 濡傛灉搴忓垪鍖栫鐨刣efault鍜屽弽搴忓垪鍖栫鐨刣efault鎻忚堪涓嶄竴鏍蜂細(xì)瀵艱嚧鏈緇堢粨鏋滃畬鍏ㄤ笉涓鑷?/p>

    鍗? 鍚屼竴涓暟鎹袱涓粨鏋? 榪欐槸涓嶅彲棰勬祴鐨勭粨鏋? 鍥犳騫叉帀榪欎釜鐗規(guī)?/p>

    涓嶈繃鏈漢瑙夊緱, 瀵逛簬娓告垙鏉ヨ, 榪欎釜鍔熻兘鏈韓鍙互鍘嬬緝寰堝鏁版嵁,铏界劧浼?xì)鏈夐殣鎮(zhèn)?/p>

     

    鏋氫婦榛樿鍊間竴瀹氭槸0

    proto2閲岀殑榛樿鍊兼槸鏋氫婦鐨勭涓涓獀alue瀵瑰簲鐨勫? 涓嶄竴瀹氫負(fù)0

    proto3鍦ㄤ綘瀹氫箟value鏃? 寮哄埗瑕佹眰絎竴涓煎繀欏諱負(fù)0

    榪欎釜淇敼涓洪伩鍏嶉殣鎮(zhèn)h繕鏄湁甯姪鐨?/p>

    娉涘瀷鎻忚堪鏀寔

    any綾誨瀷, 鍙互浠h〃浠諱綍綾誨瀷, 鍙互鍏堣榪涙潵, 鍐嶈繘琛岃В鏋? 娌″叿浣撶敤, 姝ュ瓙璺ㄥぇ浜?jiǎn)鎬曟壇鍒拌泲

    鏀寔json搴忓垪鍖?/h2>

    榪欎釜鏋佸ソ, json鍐嶆琚悓鍖栦簡(jiǎn)

    澧炲姞浜?jiǎn)澶毧U嶈璦鏀寔

    js, objc, ruby, C#絳夌瓑

    鐒惰? C#鐗堟湰鐨勫熀紜runtime搴撴槸鐢–# 6.0鐨勮娉曞啓鐨?榪欏浜嶶nity mono紲栦紶2.0鏉ヨ, 紜疄鎵埌铔嬩簡(jiǎn),娌℃硶鐢?/p>

    Protobuf鐜板湪浣跨敤CMAKE鍋氶厤緗郴緇?/h2>

    緙栬瘧璧鋒潵紼嶅井楹葷儲(chǔ), 榪樿涓嬩釜琚鎺夌殑cmake鈥?/p>

     

     

    絎笁鏂瑰簱閲屽浜巔roto3鐨勫彉鍖?/h1>

    Golang鐨勫畼鏂筽rotobuf鏀寔: https://github.com/golang/protobuf

    鐢熸垚浠g爜涓殑緇撴瀯浣撳瓧孌電被鍨嬪彉鍖?/h2>

    瀵逛簬proto2鐨勬枃浠? 鐢熸垚鐨刧o浠g爜涓殑緇撴瀯浣撲緷鐒朵嬌鐢ㄧ被鍨嬫寚閽堜綔涓洪粯璁ゅ瓨鍌? 鍏煎鑰佺殑緋葷粺

    瀵逛簬proto3鐨勬枃浠? 鐢熸垚鐨刧o浠g爜涓殑緇撴瀯浣撶洿鎺ヤ嬌鐢ㄥ瓧孌典綔涓洪粯璁ゅ瓨鍌? 涓嶅啀浣跨敤GetXXX鏉ヤ綔涓哄瓧孌靛艱闂? 璧嬪兼椂涔熸棤闇浣跨敤proto.綾誨瀷() 鍑芥暟榪涜鎸囬拡綾誨瀷瀛楁鍊煎垱寤?

    榪欎釜璋冩暣寰堟槸鏂逛究, 浣嗕涪澶變簡(jiǎn)optional鍒ゆ柇鍔熻兘, 瀵瑰簲C++閲屽氨鏄痟asXXX鐨勫姛鑳? 涓嶈繃濂芥榪欎釜閫昏緫鐜板湪鐢ㄧ殑涓嶅浜?/p>

    榪欎釜淇敼澶ф涔熸槸閰嶅悎json搴忓垪鍖栨潵鍋氱殑, go榛樿鐨刯son搴忓垪鍖栨椂, 鏃犳硶浣跨敤proto2鐢熸垚鐨勭粨鏋勪綋鐨? 鍥犱負(fù)閮芥槸鎸囬拡,鏃犳硶璧嬪?.

     

    鏂扮増protoc-gen-go鐨勬彃浠朵細(xì)鐢熸垚descriptor鐨勫帇緙╂暟鎹?/h2>

    鏂版彃浠朵細(xì)緇欐瘡嬈$敓鎴愮殑鏂囦歡娣誨姞榪欐牱涓孌典唬鐮?/p>

    var fileDescriptor0 = []byte{
        // 220 bytes of a gzipped FileDescriptorProto
        0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0x64, 0x8f, 0xcd, 0x4e, 0xc5, 0x20,
        0x10, 0x85, 0x53, 0xbd, 0x35, 0x32, 0xb7, 0xdd, 0x4c, 0x5c, 0xb0, 0x70, 0x71, 0xd3, 0xb8, 0x70,
        0x75, 0x17, 0xfa, 0x04, 0xc6, 0xd8, 0xb8, 0x50, 0x63, 0xa8, 0x2f, 0x80, 0xed, 0x44, 0x89, 0x28,
        0x04, 0xc6, 0xbf, 0x47, 0xf1, 0x6d, 0x95, 0x49, 0x8d, 0x4d, 0x5c, 0x01, 0xdf, 0x39, 0x7c, 0x30,
        0x00, 0x1c, 0x82, 0xdf, 0xc6, 0x14, 0x38, 0xe0, 0xaa, 0xec, 0xbb, 0x37, 0x68, 0x2e, 0x3e, 0x62,
        0x48, 0x7c, 0x49, 0x76, 0xa2, 0x84, 0x47, 0xd0, 0xde, 0x96, 0xf8, 0xee, 0x33, 0xd2, 0x8d, 0x7d,
        0x26, 0x5d, 0x6d, 0xaa, 0x63, 0x65, 0xda, 0xb8, 0x84, 0xd8, 0x41, 0x63, 0xc2, 0x7b, 0xef, 0xc8,
        0x4f, 0x52, 0xda, 0x91, 0x52, 0x93, 0x16, 0x0c, 0x0f, 0x41, 0x89, 0xa9, 0x77, 0x9e, 0xf4, 0xae,
        0x14, 0x54, 0xfc, 0x05, 0xdd, 0x57, 0x05, 0x4a, 0xba, 0xd7, 0xc4, 0x16, 0xb7, 0x80, 0x03, 0x27,
        0xf7, 0xf2, 0x70, 0x72, 0xe5, 0x32, 0x0f, 0xd1, 0x3b, 0xa6, 0x34, 0x5b, 0x31, 0xff, 0x4b, 0x70,
        0x03, 0x6b, 0x43, 0x91, 0x2c, 0x9f, 0x3f, 0xd2, 0xf8, 0x24, 0xf6, 0x7d, 0xb3, 0x4e, 0x7f, 0x08,
        0x0f, 0xa0, 0x3e, 0xf3, 0xce, 0x66, 0xbd, 0x12, 0x49, 0x6d, 0xcb, 0xa1, 0x4c, 0x37, 0xbf, 0xf3,
        0xb3, 0xbc, 0x8e, 0xac, 0x6b, 0xb9, 0xd9, 0xe6, 0x25, 0xbc, 0xdf, 0x93, 0x6f, 0x9e, 0x7e, 0x07,
        0x00, 0x00, 0xff, 0xff, 0x0c, 0x9f, 0x10, 0xa8, 0x2e, 0x01, 0x00, 0x00,
    }

    瀵逛簬meta淇℃伅鐨勬彁鍙栬繕鏄緢鏂逛究鐨?/p>

    鐒惰?/p>

    瀵逛簬澶氫釜鏂囦歡鐨勭敓鎴? 榪欐牱鍋氶潪甯哥殑楹葷儲(chǔ), 鍥犱負(fù)榪欎釜瀛楁浼?xì)閲嶅瀵艰嚧缂栬瘧閿欒?/p>

    寰堝浜哄湪璁哄潧閲屽悙妲? 瀹樻柟緇欏嚭鐨勮В鍐蟲(chóng)柟娉曟槸, 浣跨敤protoc涓嬈℃т紶鍏ヤ竴涓猵ackage涓嬬殑鎵鏈夌殑proto鐩存帴鐢熸垚涓涓猤o

    鑰屼笉鏄幇鍦ㄧ殑涓涓猵roto涓涓猤o

    鐢熸垚浠g爜浼?xì)鑷姩娉ㄥ唽鍒板叏灞, 騫跺彲浠ユ柟渚跨殑鏌ヨ

    浠ュ墠榪欎釜浠g爜闇瑕佽嚜宸辨潵鍋? 鐜板湪瀹樻柟鎻愪緵浜?jiǎn)鏀? 寰堟槸鏂逛究

    鐒惰? 涓轟粈涔堜笉鏀寔閬嶅巻鈥?孌嬪康鍟? 鍙堣鑷繁鍔ㄦ墜浜?/p>

    ]]>
    鍩轟簬Protobuf鐨勭數(shù)瀛愯〃鏍煎鍑哄櫒tabtoy寮婧?/title><link>http://www.shnenglu.com/sunicdavy/archive/2016/01/25/212738.html</link><dc:creator>鎴橀瓊灝忕瓚</dc:creator><author>鎴橀瓊灝忕瓚</author><pubDate>Mon, 25 Jan 2016 06:00:00 GMT</pubDate><guid>http://www.shnenglu.com/sunicdavy/archive/2016/01/25/212738.html</guid><wfw:comment>http://www.shnenglu.com/sunicdavy/comments/212738.html</wfw:comment><comments>http://www.shnenglu.com/sunicdavy/archive/2016/01/25/212738.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.shnenglu.com/sunicdavy/comments/commentRss/212738.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/sunicdavy/services/trackbacks/212738.html</trackback:ping><description><![CDATA[<p>欏圭洰鍦板潃:</p> <p><a title="https://github.com/davyxu/tabtoy" >https://github.com/davyxu/tabtoy</a></p><img src ="http://www.shnenglu.com/sunicdavy/aggbug/212738.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/sunicdavy/" target="_blank">鎴橀瓊灝忕瓚</a> 2016-01-25 14:00 <a href="http://www.shnenglu.com/sunicdavy/archive/2016/01/25/212738.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>git鏈嶅姟鍣ㄧ畝鏄撴惌寤烘硶http://www.shnenglu.com/sunicdavy/archive/2015/06/10/210870.html鎴橀瓊灝忕瓚鎴橀瓊灝忕瓚Wed, 10 Jun 2015 06:53:00 GMThttp://www.shnenglu.com/sunicdavy/archive/2015/06/10/210870.htmlhttp://www.shnenglu.com/sunicdavy/comments/210870.htmlhttp://www.shnenglu.com/sunicdavy/archive/2015/06/10/210870.html#Feedback0http://www.shnenglu.com/sunicdavy/comments/commentRss/210870.htmlhttp://www.shnenglu.com/sunicdavy/services/trackbacks/210870.html鍙楀敖svn鍚勭鎶樼(鐨勫皬浼欎即閮藉惉璇磋繃git. 浣嗘槸緗戜笂涓鎼滅儲(chǔ), 鏈潵鎵撶畻璺焥vn涓鏍? 涓嬩竴涓湇鍔″櫒, 瑁呬笅灝卞彲浠ュ紑濮嬬敤浜?

    娌℃兂鍒板晩, 娌℃兂鍒? 灞呯劧闇瑕丩inux澶╄祴鐐光?/p>

    濂藉惂, 鎷滈笩鍝ラ棬涓嬫妸Linux涓婃墜浜?jiǎn)鍚? 鍒氬紑濮嬫惌git, 闈? 鍙堥渶瑕佸叕閽ュ拰鍚勭杈呭姪杞歡.

    浼や笉璧峰晩

    寰堝灝忎紮浼翠滑, 鑷緇х畫(huà)娌夐粯鐨勭戶(hù)緇嬌鐢╯vn

    鎴戜滑娌℃湁鏀懼純, 鎴戜滑鎵懼埌浜?jiǎn)绠(shan)鏄?zhai)鎼緩娉?/p>

     

    鍏堢湅鐤楁晥:

    1. 鏃犻渶鍏挜

    2. 鍙渶瑕佸嚑涓渶甯哥敤鐨凩inux鍛戒護(hù)灝卞彲浠ユ惌寤?/p>

     

    鐪嬫楠?/h2>

    1. 鍑嗗Linux鏈嶅姟鍣? 瀹夎濂絞it(涓鑸兘鏄粯璁よ濂界殑)

    2. 鍛戒護(hù)琛屾搷浣?/p>

    useradd git   #鍒涘緩涓涓猤it璐﹀彿

    passwd git    #璁劇疆git璐﹀彿鐨勫瘑鐮?/p>

    su 鈥?git    #鍒囨崲鍒癵it璐﹀彿

    cd ~  #杞埌鐢ㄦ埛鐩綍

    mkdir 欏圭洰鍚嶇О.git   #寤虹珛欏圭洰git鏂囦歡澶?/p>

    cd 欏圭洰鍚嶇О.git

    git 鈥?bare 鈥搒hare init   #鍒濆鍖杇it搴?/p>

     

    3. 椹笂鎷胯搗浣犵殑git瀹㈡埛绔? 涔岄緹, SourceTree鍧囧彲)杈撳叆榪欐牱鏍煎紡鐨勫湴鍧git@ip:/path/to/project.git

    渚嬪: git@192.168.1.2:/home/git/YourProject.git

    git pull鏃? 闇瑕佽緭鍏ュ瘑鐮? 灝辮緭鍏ヤ笂闈㈠垱寤哄ソ鐨刧it璐﹀彿鐨勫瘑鐮佸氨鍙互

    寮濮嬩嬌鐢ㄥ惂!

     

    Tips

    榪欑鏂規(guī)硶鎼緩鐨刧it鏈嶅姟鍣ㄤ粎闄愪簬灝忓洟闃熷拰瀵硅礎(chǔ)鐚唬鐮佷笉鏁忔劅鐨勯」鐩岀敓

    git鏈韓鐨勫叕閽ユ槸涓轟簡(jiǎn)闃叉鍒漢浼犵敤鎴峰悕榪涜铏氬亣鎻愪氦. 浣嗚繖涓柟娉曠粫寮浜?jiǎn)杩欑?/p>

    鎯沖紑鏂扮殑git搴撴椂, 鍒囪浣跨敤git璐﹀彿鍘婚噸澶嶄互涓婃楠? 鑻ヤ嬌鐢╮oot綰у埆璐﹀彿鍒涘緩鐨勬枃浠跺す浣跨敤瀹㈡埛绔椂浼?xì)閬囧埌鏉冮檺涓嵀懗鐨勬彁绀?/p>

    ]]>
    浣跨敤SVN澶勭悊澶氫漢鍏變韓淇敼鏂囦歡http://www.shnenglu.com/sunicdavy/archive/2015/03/06/209943.html鎴橀瓊灝忕瓚鎴橀瓊灝忕瓚Fri, 06 Mar 2015 08:27:00 GMThttp://www.shnenglu.com/sunicdavy/archive/2015/03/06/209943.htmlhttp://www.shnenglu.com/sunicdavy/comments/209943.htmlhttp://www.shnenglu.com/sunicdavy/archive/2015/03/06/209943.html#Feedback0http://www.shnenglu.com/sunicdavy/comments/commentRss/209943.htmlhttp://www.shnenglu.com/sunicdavy/services/trackbacks/209943.htmlSVN鐨勫伐浣滄祦鏄痗heckout->modify->update->merge->commit, 濡傛灉澶氫漢淇敼鍚屼竴涓枃浠? 闇瑕佽繘琛屽悎騫? 浣嗗浜嶦xcel絳夊鍚堟枃浠舵牸寮? svn鏃犳硶澶勭悊鍚堝茍. 铏界劧浜戦灝濊瘯澶勭悊榪?a >Excel鍚堝茍鐨勯棶棰?/a>, 浣嗗叾瀹炲浜庢垜浠棩甯稿紑鍙戞潵璇? 騫朵笉澶湡鏈涙湁浜涙搷浣滆繘琛屽悎騫? 鑰屾槸綾諱技浜嶸SS閭g鏃╂湡鐨勪唬鐮佺鐞嗗伐鍏風(fēng)殑閿佸畾琛屼負(fù). SVN渚濈劧鏈夎繖涓姛鑳?

    榪欓噷浣跨敤鐨勬槸椋庨潯涓栫晫鐨凾ortoriseSVN. 閫変腑涓涓猄VN綆$悊涓嬬殑鏂囦歡, 鐐瑰嚮鍙抽敭, 鎵撳紑灞炴?/p>

    image

    鍦∟ew瀵硅瘽妗嗕腑閫変腑Needs-Lock

    image

    鎻愪氦榪欎釜灞炴т慨鏀?

    鐜板湪鎴戜滑鐨勫伐浣滄祦鐨勬煇浜涙楠ゅ彉鍖栦簡(jiǎn):

    image

    getlock->modify->commit

    濡傛灉鏈変粬浜哄湪淇敼, getlock浼?xì)澶辫?/p>

    getlock鐨勫師鐞嗕笌鏃╂湡鐨刅SS涓鑷? 浣跨敤浜?jiǎn)鏂囦欢鍙潥勫睘鎬? 濡傛灉灝濊瘯涓峠etlock灝變慨鏀規(guī)枃浠? 閭d箞鏂囦歡鏈緇堟棤娉曚繚瀛?



    ]]>
    娣卞叆鎸栨帢protobuf: 閫氳繃protoc鑾峰彇proto鏂囦歡淇℃伅http://www.shnenglu.com/sunicdavy/archive/2015/03/01/209894.html鎴橀瓊灝忕瓚鎴橀瓊灝忕瓚Sun, 01 Mar 2015 05:49:00 GMThttp://www.shnenglu.com/sunicdavy/archive/2015/03/01/209894.htmlhttp://www.shnenglu.com/sunicdavy/comments/209894.htmlhttp://www.shnenglu.com/sunicdavy/archive/2015/03/01/209894.html#Feedback0http://www.shnenglu.com/sunicdavy/comments/commentRss/209894.htmlhttp://www.shnenglu.com/sunicdavy/services/trackbacks/209894.html鍑嗗:

    鍦?a title="http://code.google.com/p/protobuf/" >http://code.google.com/p/protobuf/涓嬭澆protobuf-2.5鐗堟湰

    棰勫鐭ヨ瘑: 宸茬粡浣跨敤榪噋rotobuf, 鐔熺粌搴旂敤protobuf搴忓垪鍖栧湪鍚勮璦闂翠氦浜掍俊鎭?/p>

    鐩爣: 鑾峰彇proto鍐呭鑰屾棤闇鎵嬪姩瑙f瀽proto鏂囦歡

    涓簆roto鏂囦歡娣誨姞鏇村鐨刴eta淇℃伅, 騫跺湪榪愯鏈熻幏鍙?

     

    protoc緙栬瘧鍣ㄥ噯澶?/strong>

    閫氳繃protobuf-2.5鐨勬簮鐮佹垨鑰呬粠瀹樼綉涓嬭澆, 鍙互鑾峰緱protoc鐨刾rotobuf緙栬瘧鍣? 榪欎釜緙栬瘧鍣ㄧ敱C++緙栧啓, 瀹樻柟鏀寔瀹屾暣鐨刾rotobuf鐗規(guī)? 緙栬瘧鍣ㄩ粯璁ゆ敮鎸丆++, python鍜宩ava 涓夌璇█鐨勪唬鐮佺敓鎴? 濡傞渶鐢熸垚鏇村鐨勮璦, 鍙互閫氳繃瀹樼綉鐨勭涓夋柟欏甸潰鑾峰彇.

     

    protoc鎻掍歡鍘熺悊

    浣嗘垜浠湪鏃ュ父浣跨敤涓? 鍙兘闇瑕佹彁鍙杙roto淇℃伅, 渚嬪: 鎵鏈夌殑鏋氫婦,娑堟伅絳変俊鎭? 瀛楁鍚嶇О鍜屽鍑哄彿. 鑷繁緙栧啓璇嶆硶瑙f瀽鍣ㄦ潵鍋氭槸璐瑰姏涓嶈濂界殑. 瀹樻柟鎺ㄨ崘鐨勬柟娉曟槸浣跨敤protoc澶栨寕鎻掍歡鏉ュ疄鐜?

    protoc鐨勬彃浠惰璁℃瘮杈冪嫭鐗? 涓嶄嬌鐢ㄥ姩鎬侀摼鎺ュ簱鎴栬卝ava鐨刯ar鍖呭鍏ユ柟寮? 鑰屾槸鐩存帴浣跨敤浜?jiǎn)鍛戒护琛屾潵浜ゆ崲鏁版?鏌ョ湅protobuf婧愮爜鎴戜滑鍙互鍙戠幇榪欐牱涓涓枃浠?

    protobuf-2.5.0\src\google\protobuf\descriptor.proto

    榪欎釜鏂囦歡鎻忚堪浜?jiǎn)涓涓猵roto鏂囦歡鐨勬牸寮? 娑堟伅緇勬垚鍙?qiáng)鏋氫竸…夊畬鏁翠俊鎭? 榪欐槸涓縐嶈嚜鎴戞弿榪扮殑鏂規(guī)硶.

    鍦ㄦ壘鍒拌繖鏍蜂竴涓枃浠?/p>

    protobuf-2.5.0\src\google\protobuf\compiler\plugin.proto

    榪欐牱涓涓枃浠舵弿榪? 鎻掍歡濡備綍涓巔rotoc榪涜浜や簰鐨勫崗璁?/p>

    protoc緙栬瘧鍣ㄥ湪緇欏畾鎸囧畾proto鏂囦歡鍙?qiáng)鎼滅储璧\寰勫悗, 灝嗗悇縐嶄俊鎭~鍏呬負(fù)descriptor.proto鎻忚堪鐨勭粨鏋勫悗閫氳繃CodeGeneratorRequest娑堟伅緋誨垪鍖栦負(fù)浜岃繘鍒舵祦鍚庤緭鍑哄埌鍛戒護(hù)琛? 鎻掍歡鍙敤鎹曡幏protoc鍛戒護(hù)琛岃緭鍑虹殑浜岃繘鍒舵祦, 搴忓垪鍖栧寲鍥濩odeGeneratorRequest鍗沖彲鑾峰緱瑙f瀽鍚庣殑proto鏂囦歡鍐呭

    榪欓噷闇瑕佹敞鎰忕殑鏄? 鎻掍歡鍙墽琛屾枃浠跺緢鏈夎絀? 蹇呴』涓簆rotoc-gen-$NAME,  鑰屼笖杈撳嚭鏂囦歡鍚嶅弬鏁板繀欏諱負(fù)--${NAME}_out

    鐪嬩竴涓牀瀛?

    protoc.exe foo.proto --plugin=protoc-gen-go=..\tools\protoc-gen-go.exe --go_out foo.go --proto_path "."

    榪欎釜鏍楀瓙閲? $NAME=go

    protoc灝唂oo.proto鏂囦歡(鎼滅儲(chǔ)璺緞涓哄綋鍓嶈礬寰?鐨勫唴瀹歸氳繃鍛戒護(hù)琛岃緭鍑虹粰浣嶄簬..\tools\鐨勬彃浠秔rotoc-gen-go.exe,  杈撳嚭鏂囦歡鍚嶅瓧涓?foo.go

    descriptor.proto淇℃伅鎸栨帢

    鎴戜滑娉ㄦ剰鍒板湪descriptor.proto鏂囦歡涓寘鍚湁榪欐牱鐨勪竴涓猰essage: SourceCodeInfo, 榪欎釜娑堟伅浣撻噷鏈夊涓嬪瓧孌?/p>

    optional string leading_comments = 3;
        optional string trailing_comments = 4;

    榪欎袱涓瓧孌靛浜庢垜浠幏鍙杙roto鏂囦歡鐨刴eta淇℃伅灝や負(fù)閲嶈, 鎵璋撶殑meta淇℃伅, 鐞嗚В鐞嗚В涓篊#璇█涓殑attribute

    榪欎釜attribute鍔熻兘鍙互涓轟竴涓瓧孌? 涓涓秷鎭墿鍏呬竴浜涙弿榪? 姣斿: 褰撲竴涓瓧孌甸氳繃鍙嶅皠鏄劇ず鍦╣ui涓婃椂, gui闇瑕佽幏鍙栬繖涓瓧孌電殑涓枃鎻忚堪

    閭d箞鍙渶瑕佸涓嬬紪鍐?

    optional int32 somevalue = 1 //@ desc=鈥濅腑鏂囨弿榪扳?

    浣嶄簬瀛楁灝鵑儴鐨勬弿榪? 浼?xì)琚~鍏呭埌SourceCodeInfo鐨?trailing_comments涓? 鑰屼綅浜庡瓧孌典笂鏂圭殑瀛楁, 浼?xì)琚~鍏呭埌l(fā)eading_comments涓?

     

    SourceCodeInfo 騫舵病鏈夌洿鎺ユ寕杞藉湪message鎴栬呭瓧孌電殑闄勮繎, 鑰屾槸閫氳繃鍏朵笅鐨刾ath瀛楁鏉ユ弿榪頒笌瀛楁鐨勫叧緋? 榪欐槸涓瀬涓洪夯鐑?chǔ)鐨勮璁?

    鍏跺師鐞嗗涓?

    鍋囪鎴戞湁濡備笅涓涓猰essage

    message foo

    {

         optional int32 v = 1;  // comments

    }

    瑕佽幏鍙杤鍚庣殑娉ㄩ噴, 瀵瑰簲鐨刾ath涓?4, 0, 2, 0

    4 琛ㄧずdescriptor涓璵essage_type鎵鍦ㄧ殑搴忓彿,鐢變簬message_type瀵瑰簲鐨勭被鍨婦escriptorProto鏄竴涓暟緇? 鎵浠?琛ㄧずfoo鏄湪FileDescriptorProto鐨刴essage_type鏁扮粍綾誨瀷鐨勭儲(chǔ)寮曚負(fù)0;

    濡傛綾繪帹: 2, 0 琛ㄧず v鍦―escriptorProto緇撴瀯浣撶殑field鎴愬憳搴忓彿涓?鐨勬暟緇勫厓绱犵殑绱㈠紩涓?

     

    濡傛灉闇瑕佹洿澶氱殑鍙傝? 鍙互鑾峰彇https://github.com/golang/protobuf

    github.com\golang\protobuf\protoc-gen-go宸ョ▼鍐呮湁璇︾粏浠g爜瑙f瀽

    ]]>
    Visual Studio涓嬬殑proto鏂囦歡楂樹(shù)寒鎻掍歡http://www.shnenglu.com/sunicdavy/archive/2014/12/16/209189.html鎴橀瓊灝忕瓚鎴橀瓊灝忕瓚Tue, 16 Dec 2014 06:06:00 GMThttp://www.shnenglu.com/sunicdavy/archive/2014/12/16/209189.htmlhttp://www.shnenglu.com/sunicdavy/comments/209189.htmlhttp://www.shnenglu.com/sunicdavy/archive/2014/12/16/209189.html#Feedback0http://www.shnenglu.com/sunicdavy/comments/commentRss/209189.htmlhttp://www.shnenglu.com/sunicdavy/services/trackbacks/209189.html鎺ㄨ崘涓涓傜敤浜嶸isual Studio2013/11鐨凣oogle protobuf鐨刾roto鏂囦歡楂樹(shù)寒鎻掍歡, 涓婂浘

    image

    铏界劧娌℃湁Eclipse鎻掍歡鐨勮嚜鍔ㄧ敓鎴愬簭鍙峰姛鑳? 浣嗗凡緇忓緢婕備寒浜? 榪樿嚜甯︽湁protobuf鍏抽敭瀛楁彁閱? 寰堜笉閿?br />鍦板潃: https://visualstudiogallery.msdn.microsoft.com/4bc0f38c-b058-4e05-ae38-155e053c19c5



    ]]>
    git閬囧埌remote: fatal: early EOF + index-pack failed鐨勫鐞嗘柟娉?/title><link>http://www.shnenglu.com/sunicdavy/archive/2014/05/29/207142.html</link><dc:creator>鎴橀瓊灝忕瓚</dc:creator><author>鎴橀瓊灝忕瓚</author><pubDate>Thu, 29 May 2014 06:30:00 GMT</pubDate><guid>http://www.shnenglu.com/sunicdavy/archive/2014/05/29/207142.html</guid><wfw:comment>http://www.shnenglu.com/sunicdavy/comments/207142.html</wfw:comment><comments>http://www.shnenglu.com/sunicdavy/archive/2014/05/29/207142.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/sunicdavy/comments/commentRss/207142.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/sunicdavy/services/trackbacks/207142.html</trackback:ping><description><![CDATA[<p>鎰熻阿榪欎綅鐨勫崥瀹㈡彁渚涚殑瑙e喅鏂規(guī)硶</p> <p><a title="http://www.lszhang.com/topics/git-push-%E6%97%B6%E5%87%BA%E7%8E%B0-remote-fatal-early-eof-%E9%94%99%E8%AF%AF" >http://www.lszhang.com/topics/git-push-%E6%97%B6%E5%87%BA%E7%8E%B0-remote-fatal-early-eof-%E9%94%99%E8%AF%AF</a></p> <p> </p> <p>淇敼 GIT 鐨勬湰鍦?config 鏂囦歡錛屽湪 core 涓姞鍏ワ細(xì) <p>compression = -1 <p>榪欓噷鏄湪clone鏂瑰鐞?<p>windows git鐩綍鍦╟:\Program Files (x86)\Git\etc\gitconfig涓?<p>  <p>鍏朵粬杈呭姪鏂規(guī)硶鍙傝?a >http://git.661346.n2.nabble.com/Large-pack-causes-git-clone-failures-what-to-do-td5481488.html</a> <p>git repack --max-pack-size=100m -a -d </p><img src ="http://www.shnenglu.com/sunicdavy/aggbug/207142.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/sunicdavy/" target="_blank">鎴橀瓊灝忕瓚</a> 2014-05-29 14:30 <a href="http://www.shnenglu.com/sunicdavy/archive/2014/05/29/207142.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>TortoiseGit鐨勮繙紼嬫媺鍙?/title><link>http://www.shnenglu.com/sunicdavy/archive/2014/04/02/206434.html</link><dc:creator>鎴橀瓊灝忕瓚</dc:creator><author>鎴橀瓊灝忕瓚</author><pubDate>Wed, 02 Apr 2014 06:17:00 GMT</pubDate><guid>http://www.shnenglu.com/sunicdavy/archive/2014/04/02/206434.html</guid><wfw:comment>http://www.shnenglu.com/sunicdavy/comments/206434.html</wfw:comment><comments>http://www.shnenglu.com/sunicdavy/archive/2014/04/02/206434.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/sunicdavy/comments/commentRss/206434.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/sunicdavy/services/trackbacks/206434.html</trackback:ping><description><![CDATA[<p>鐢ㄦ儻浜?jiǎn)hg鐨勪究鎹? 鎹㈠仛git鎰熻紜疄鏈変簺涓嶄漢鎬у寲. 浣嗘槸姣旇搗hg鍒嗘敮鐨勫弽浜虹被,git鐨勫己澶ц繕鏄煎緱鎴戜滑榪佺Щ鐨?/p> <p>榪欓噷浣跨敤TortoiseGit Windows瀹㈡埛绔?Git-1.9.0-preview20140217.   涓嶆槸浣跨敤msysgit, 鐞嗚涓婂樊寮備笉澶?/p> <p>緗戜笂澶у鏁版枃绔犻兘浠嬬粛濡備綍鍜実ithub榪涜榪滅▼鎷夊彇. 鎴戞兂璇? 鎴戜滑寮鍙戝鎴風(fēng), 鐢╣ithub璧勬簮灝辨槸涓ぇ闂, 榪樻洿鍒鐩存帴寮婧愨?/p> <p> </p> <p>鍜孴ortoiseHG涓鏍? TortoiseGit涔熸湁涓鏍風(fēng)殑榪滅▼P2P鏂瑰紡鎷夊彇鐨勬柟娉?/p> <p>鍙渶瑕佸湪涓涓唬鐮佸簱涓婂彸閿彍鍗曚腑閫夊彇Daemon鍗沖彲</p> <p><a href="http://www.shnenglu.com/images/cppblog_com/sunicdavy/Windows-Live-Writer/91192584c6b6_C6DC/image_2.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.shnenglu.com/images/cppblog_com/sunicdavy/Windows-Live-Writer/91192584c6b6_C6DC/image_thumb.png" width="684" height="144"></a></p> <p>榪欓噷鐨勬彁紺哄憡璇変綘, 榪欐牱鐨勬媺鍙栨棤闇浠諱綍鐨勬潈闄? 鍏跺疄鏈湴寮鍙? 榪欎笉瀛樺湪, 瑕佺殑鏄柟渚? 鎵浠ユ灉鏂璓roceed</p> <p> </p> <p><a href="http://www.shnenglu.com/images/cppblog_com/sunicdavy/Windows-Live-Writer/91192584c6b6_C6DC/image_4.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.shnenglu.com/images/cppblog_com/sunicdavy/Windows-Live-Writer/91192584c6b6_C6DC/image_thumb_1.png" width="807" height="349"></a></p> <p>鏈浘琛ㄧず, 浣犲凡緇忓澶栧紑鏀句簡(jiǎn)浣犳寚瀹氬簱鐨勬潈闄?/p> <p> </p> <p>灞鍩熺綉鐨勫叾浠栦漢閫夋嫨涓涓┖鏂囦歡澶? 鐒跺悗閫夋嫨Clone</p> <p><a href="http://www.shnenglu.com/images/cppblog_com/sunicdavy/Windows-Live-Writer/91192584c6b6_C6DC/image_6.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.shnenglu.com/images/cppblog_com/sunicdavy/Windows-Live-Writer/91192584c6b6_C6DC/image_thumb_2.png" width="559" height="396"></a></p> <p>娉ㄦ剰, 榪欓噷鏈夊法澶х殑鍧? daemon涓彧鍛婅瘔浣爂it://浣犵殑IP/  浣嗘槸瀹為檯鎷夊彇浼?xì)鍑洪? 姝g‘鐨刄RL鏍煎紡蹇呴』鏄?/p> <p>git://浣犵殑IP/.git</p> <p>琛ㄧず璁塊棶鐨刧it鐨勭洰褰?!</p><img src ="http://www.shnenglu.com/sunicdavy/aggbug/206434.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/sunicdavy/" target="_blank">鎴橀瓊灝忕瓚</a> 2014-04-02 14:17 <a href="http://www.shnenglu.com/sunicdavy/archive/2014/04/02/206434.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鑷畾涔塗exturePacker鎻掍歡瀵煎嚭鑷繁鐨刾list鏂囦歡http://www.shnenglu.com/sunicdavy/archive/2014/02/06/205645.html鎴橀瓊灝忕瓚鎴橀瓊灝忕瓚Thu, 06 Feb 2014 07:23:00 GMThttp://www.shnenglu.com/sunicdavy/archive/2014/02/06/205645.htmlhttp://www.shnenglu.com/sunicdavy/comments/205645.htmlhttp://www.shnenglu.com/sunicdavy/archive/2014/02/06/205645.html#Feedback0http://www.shnenglu.com/sunicdavy/comments/commentRss/205645.htmlhttp://www.shnenglu.com/sunicdavy/services/trackbacks/205645.htmlcocos2dx寮曟搸浣跨敤plist鏂囦歡, 涓縐嶇壒孌婄殑xml鏍煎紡浣滀負(fù)鍏禷tlas綰圭悊鐨勬弿榪版枃浠? plist閬靛驚鑻規(guī)灉鐨剎ml涓璳ey-value鐨勮璁¢鏍?瀵逛簬OC鏉ヨ鏄悎閫傜殑, 浣唜ml鏈韓鎬ц兘浣庝笅, 鍨冨溇鍐呭榪囧, 涔熻plist瀵逛簬楂樻ц兘娓告垙寮曟搸涓嶅啀閫傚悎. 鍥犳, 鐮旂┒TexturePacker鐨勫鍑烘彃浠舵妧鏈?/p>

    TexturePacker鐨勮嚜瀹氫箟鎻掍歡鐩綍浣嶄簬鍏跺畨瑁呯洰褰曠殑bin\exporters\涓? 浣嗘湁涓浜涙彃浠跺睘浜庡唴寤烘敮鎸? 渚嬪cocos2dx鐨刾list鏍煎紡, 鍥犳鏃犳硶鎵懼埌瀵瑰簲鎻掍歡

    鏈漢鍙傝僺hiva3d鎻掍歡, 瀵瑰簲瀵煎嚭鐣岄潰鐨凞ataFormat涓殑Shiva3D, 蹇熷浼?xì)浜?jiǎn)濡備綍瀵煎嚭

    瀹樻柟鏂囨。浣嶄簬http://www.codeandweb.com/texturepacker/documentation/#customization

    鎻掍歡鐨勫熀鏈牸寮忓強(qiáng)鍘熺悊鏄?

    bin\exporters\涓嬬殑鏌愪竴鐩綍涓嬪瓨鍦ㄧ殑涓涓悕涓篹xporter.xml鏂囦歡浣滀負(fù)鎻掍歡鐨勬弿榪?渚嬪:

    <exporter version="1.0">
        <!-- identifier of the exporter -->
        <name>shiva3d</name>
     
        <!-- display name of the exporter for the combo box -->
        <displayName>Shiva3D</displayName>
        
        <!-- description of the exporter -->
        <description>Exporter for Shiva3D.</description>
     
        <!-- exporter version -->
        <version>1.0</version>
        
        <!-- currently only one file allowed - more to come with update -->
        <files>
            <file>
                <!-- name of this file variable -->
                <name>xml</name>
     
                <!-- human readable name (for GUI) -->
                <displayName>XML</displayName>
     
                <!-- file extension for the file -->
                <fileExtension>xml</fileExtension>
     
                <!-- name of the template file -->
                <template>shiva.xml</template>
            </file>
        </files>
     
        <!-- target framework supports trimming -->
        <supportsTrimming>false</supportsTrimming>
     
        <!-- target framework supports rotated sprites -->
        <supportsRotation>true</supportsRotation>
     
        <!-- rotated sprites direction (cw/ccw) -->
        <rotationDirection>cw</rotationDirection>
     
        <!-- supports npot sizes -->
        <supportsNPOT>true</supportsNPOT>
     
        <!-- supports file name stripping (remove .png etc) -->
        <supportsTrimSpriteNames>yes</supportsTrimSpriteNames>
     
        <!-- supports texure subpath -->
        <supportsTextureSubPath>yes</supportsTextureSubPath>
     
    </exporter>
     
     

     

    鍦═emplate瀛楁涓? 鎻忚堪鍚岀洰褰曠殑瀵煎嚭鏂囦歡鏍煎紡妯℃澘. TexturePacker浣跨敤涓縐嶅彨Grantlee鐨勬ā鏉垮紩鎿?綾諱技浜嶱ython浣跨敤鐨凞jango妯℃澘寮曟搸, 鏂囨。鍙傝:Grantlee Documentation. 綆鍗曠殑鏂囨湰鏍煎紡鍙互鍙傝僺hiva.xml蹇熷浼?/p>

    榪欓噷鎴戜滑浣跨敤protobuf鐨勬枃鏈牸寮?鏋佷負(fù)綾諱技json)瀵煎嚭plist, 涓嬮潰鏄鍑烘ā鏉?/p>

     

    {% for sprite in allSprites %}
    Sprite {
        Name: "{{sprite.trimmedName}}"
        FrameX: {{sprite.frameRect.x}}
        FrameY: {{sprite.frameRect.y}}
        FrameWidth: {{sprite.frameRectWithoutRotation.width}}
        FrameHeight: {{sprite.frameRectWithoutRotation.height}}
        OffsetX: {{sprite.cornerOffset.x}}
        OffsetY: {{sprite.cornerOffset.y}}
        OriginalWidth: {{sprite.untrimmedSize.width}}
        OriginalHeight: {{sprite.untrimmedSize.height}}
        {% if sprite.rotated %}Rotated: true {% endif %}
    }
    {% endfor %}

    瀵煎嚭鐨勭粨鏋滅被浼間簬:

     
    Sprite {
        Name: "car01"
        FrameX: 100
        FrameY: 129
        FrameWidth: 76
        FrameHeight: 47
        OffsetX: 0
        OffsetY: 0
        OriginalWidth: 76
        OriginalHeight: 47
        Rotated: true 
    }
     
    Sprite {
        Name: "car02"
        FrameX: 100
        FrameY: 51
        FrameWidth: 76
        FrameHeight: 47
        OffsetX: 0
        OffsetY: 0
        OriginalWidth: 76
        OriginalHeight: 47
        Rotated: true 
    }

    ...

    瀵煎嚭鎻掍歡榪樻敮鎸乯s鎵╁睍, 鍏蜂綋鍐呭璇風(fēng)戶(hù)緇弬鑰冨畼鏂規(guī)枃妗? 浣嗗浜庣畝鍗曠殑鏂囨湰鏍煎紡, 榪欑鏂瑰紡宸茬粡瓚沖浜?/p>

    瀵規(guī)瘮plist鍚? 鍙戠幇plist涓殑鍨冨溇淇℃伅鏋佷負(fù)澶? 鑰屼笖浣滀負(fù)spriteframe鐨刵ame灞呯劧甯︽湁鎵╁睍鍚?..  鍥犳鑴辯plist,緙栧啓鑷繁鐨勫鍑烘彃浠舵墠鏄帇閬?



    ]]>
    [杞琞Go 1.3+ 緙栬瘧鍣ㄥ彉闈?/title><link>http://www.shnenglu.com/sunicdavy/archive/2014/01/22/205525.html</link><dc:creator>鎴橀瓊灝忕瓚</dc:creator><author>鎴橀瓊灝忕瓚</author><pubDate>Wed, 22 Jan 2014 04:23:00 GMT</pubDate><guid>http://www.shnenglu.com/sunicdavy/archive/2014/01/22/205525.html</guid><wfw:comment>http://www.shnenglu.com/sunicdavy/comments/205525.html</wfw:comment><comments>http://www.shnenglu.com/sunicdavy/archive/2014/01/22/205525.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/sunicdavy/comments/commentRss/205525.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/sunicdavy/services/trackbacks/205525.html</trackback:ping><description><![CDATA[<h3>姒傝堪</h3> <p>鐩墠Go緙栬瘧鍣ㄦ槸C鍐欑殑錛屾槸鏃跺欐崲鎴怗o鍟︺?<h5>鑳屾櫙</h5> <p>鈥済c"Go宸ュ叿閾炬潵鑷狿lan 9緙栬瘧鍣ㄧ殑宸ュ叿閾俱傜粍瑁呭櫒銆丆緙栬瘧鍣ㄥ拰閾炬帴鍣ㄥ熀鏈病鍙樸侴o鐨勭紪璇戝櫒(cmd/gc,cmd/5g,cmd/6g,cmd/8g)鏄厤鍚堝伐鍏烽摼鍐欑殑鏂扮殑C紼嬪簭銆?<p>欏圭洰璧峰鏃訛紝鐢–鑰屼笉鏄疓o鍐欑紪璇戝櫒鏈夊緢澶氬ソ澶勩傜獊鍑虹殑姣斿錛岄鍏堬紝閭f椂鍊橤o榪樹(shù)笉瀛樺湪錛屾病娉曞効鍐欑紪璇戝櫒銆傝屼笖瀹為檯涓婏紝灝辯畻瀛樺湪錛屼篃浼?xì)缁忓父鏈夋槑鏄剧殑涓嶅吋瀹圭殑鍙樺寲銆傜敤C涓嶇敤Go鍙互閬垮厤鍒濆鍜屾寔緇紑鍙戝鑷寸殑闂銆傜劧鑰屽浠奊o 1宸茬粡紼沖畾錛屾墍浠ヨ繖浜涙寔緇殑闂鍑忓皯浜?jiǎn)寰堝銆?<p>鎸佺畫(huà)寮鍙戠殑闂宸茬粡娑堥櫎錛屼負(fù)浜?jiǎn)璁〨o瀹炵幇鐨勭紪璇戝櫒姣擟鏇存湁鍚稿紩鍔涳紝鍙︿竴浜涘伐紼嬮棶棰樺嚭鐜幫細(xì) <ul> <li> <p>鍐欐紜殑Go浠g爜姣斿啓姝g‘鐨凜浠g爜鏇村鏄撱?/p> <li> <p>璋冭瘯閿欒鐨凣o浠g爜姣旇皟璇曢敊璇殑C浠g爜鏇村鏄撱?/p> <li> <p>浣跨敤Go緙栬瘧鍣ㄩ渶瑕佸Go鏈変竴瀹氱悊瑙c傝岀敤C緙栬瘧鍣ㄨ繕闇瑕佷竴瀹氱悊瑙銆?/p> <li> <p>Go浣垮茍鍙戞墽琛屾瘮C鏇存柟渚褲?/p> <li> <p>Go鏈夋洿濂界殑鏍囧噯鏀寔妯″潡鍖栵紝鑷姩閲嶅啓錛屽崟鍏冩祴璇曞拰鎬ц兘鍒嗘瀽銆?/p> <li> <p>Go姣擟鏇存湁瓚?fun)銆?/p></li></ul> <p>鍩轟簬浠ヤ笂鐞嗙敱錛屾垜浠浉淇℃槸鏃跺欑敤Go鍐橤o緙栬瘧鍣ㄥ暒銆?<h5>璁″垝璁炬兂</h5> <p>鎴戜滑鎵撶畻鐢ㄨ嚜鍔ㄥ寲緲昏瘧宸ュ叿鏉ョ敤Go閲嶅啓鐜板湪C鐨勭紪璇戝櫒銆傝繖涓炕璇戦渶瑕佷竴浜涢樁孌碉紝灝嗕粠Go 1.3寮濮嬫寔緇埌鏈潵鐨勫彂琛岀増銆?<p>絎竴闃舵銆傚紑鍙戝拰璋冭瘯涓涓嚜鍔ㄥ寲緲昏瘧宸ュ叿銆傝繖鍙互鍦ㄦ棩甯稿紑鍙戞椂鍚屾榪涜銆傝屼笖錛屼漢浠繕鍙互鍦ㄨ繖涓樁孌典負(fù)C緙栬瘧鍣ㄧ戶(hù)緇敼榪涖傝繖涓伐鍏峰伐浣滈噺寰堝ぇ錛屼笉榪囨垜浠湁淇″績(jī)瀹屾垚榪欎釜鐗規(guī)畩浣垮懡鐨勫伐鍏楓傛湁璁稿C鐨勮蹇墊病娉曞効鐩存帴杞崲鎴怗o錛沵acros(瀹?錛寀nions(鑱斿悎錛屽叡鐢ㄤ綋,)錛宐it fields(浣嶅煙)鍙兘鏈鍏堣冭檻銆傛瘮杈冨垢榪愶紙涓嶆槸宸у悎錛夛紝榪欎簺鍔熻兘鍔熻兘鐢ㄧ殑灝戯紝閮戒細(xì)琚炕璇戞帀銆傛寚閽堣繍綆楀拰鏁扮粍涔熼渶瑕佷竴浜涜漿鎹㈠伐浣滐紝灝界緙栬瘧鍣ㄩ噷寰堝皯銆傜紪璇戝櫒閲屼富瑕佹槸tree(鏍?鍜宭inked list(閾捐〃)銆傜炕璇戝伐鍏蜂細(xì)淇濈暀娉ㄩ噴鍜孋浠g爜鐨勭粨鏋勶紝鎵浠ョ炕璇戝悗鐨勪唬鐮佸拰褰撳墠鐨勭紪璇戝櫒浠g爜涓鏍峰彲闃呰銆?<p>絎簩闃舵銆傜敤緲昏瘧宸ュ叿杞崲C浠g爜鍒癎o錛屽茍鍒犻櫎C婧愮爜銆傝繖鏃舵垜浠凡緇忓紑濮嬬炕璇戯紝浣嗘槸Go榪樻槸榪愯鍦–緙栬瘧鍣ㄤ笂銆傞潪甯鎬箰瑙傜殑錛岃繖鍙兘鍙戠敓鍦℅o 1.3銆備笉榪囨洿鍙兘鏄疓o 1.4銆?<p>絎笁闃舵銆備嬌鐢ㄤ竴浜涘伐鍏鳳紝鍙兘鏉ヨ嚜gofix鍜宼he Go oracle錛屾媶鍒嗙紪璇戝櫒鍒板寘錛屾竻鐞嗗拰鏂囨。鍖栦唬鐮侊紝娣誨姞閫傚綋鐨勫崟鍏冩祴璇曘傝繖鏄紪璇戝櫒浼?xì)鏄湴閬撶殑Go紼嬪簭銆傜洰鍓嶆墦綆楀湪Go 1.4瀹炵幇銆?<p>絎洓a闃舵銆備嬌鐢ㄦ爣鍑嗙殑鍒嗘瀽鍜屾祴璇曞伐鍏蜂紭鍖栫紪璇戝櫒鐨凜PU鍜屽唴瀛樹(shù)嬌鐢ㄣ傚彲鑳借寮曞叆騫惰銆傚鏋滅湡榪欐牱錛?a >Race Detector</a>(Go鐨勫茍琛岀珵浜夋嫻嬪伐鍏?)浼?xì)鏈夊緢澶у府鍔┿傝繖鐩爣鍦℅o 1.4錛屽彲鑳介儴鍒嗕細(xì)寤跺悗鍒?.5銆傚熀鏈殑浼樺寲鍒嗘瀽浼?xì)鍦ńW笁闃舵瀹屾垚銆?<p>絎洓b闃舵銆傦紙鍜屽洓a鍑犳鍚屾椂榪涜錛夊綋緙栬瘧鍣ㄤ緷鐓ф槑鏄劇殑鐣岄檺鍒嗗壊鎴愬寘涔嬪悗錛岄渶瑕佹槑紜紩鍏ヤ竴涓腑浠嬬爜錛屽湪緇撴瀯鏃犲叧鐨勬棤搴忔爲(wèi)(Node_s)鍜岀粨鏋勭浉鍏崇殑鏈夊簭閾捐〃(Prog_s)涔嬮棿銆傝繖涓腑浠嬬爜搴旇涓嶄緷璧栨暣浣撴灦鏋勶紝浣嗘槸鍖呭惈鍑嗙‘鐨勬墽琛岄『搴忎俊鎭紝鍙互鐢ㄤ簬鏈夐『搴忎絾鏄粨鏋勬棤鍏崇殑鎿嶄綔鐨勪紭鍖栵紝姣斿娓呯悊澶氫綑鐨刵il媯(gè)嫻嬪拰鍑虹晫媯(gè)嫻嬨傝繖浜涜繃紼嬪熀浜?a >SSA</a>錛堥潤(rùn)鎬佸崟璧嬪鹼級(jí)錛屼綘鍙互浠嶢lan Donovan鐨?go.tools/ssa 鍖呬腑浜?jiǎn)瑙f洿澶氥?<p>絎簲闃舵銆傛浛鎹o/parser鍜実o/types鍒版渶鏂幫紙鍏ㄦ柊錛夌殑鐗堟湰銆俁obert Griesemer鍙傝冪幇鍦ㄧ殑緇忛獙錛岃璁轟簡(jiǎn)璁捐鏂扮殑parser鍜宼ypes鐨勫彲鑳姐傚鏋滆仈緋諱粬浠埌緙栬瘧鍣ㄥ悗绔紝鐩鎬俊瀵硅璁℃柊鐨凙PI鏈夊緢澶у府鍔┿?<p><strong>鑷睍錛圔ootstrapping錛?/strong>鐢℅o璇█瀹炵幇鐨凣o鐨勭紪璇戝櫒錛屼粠涓寮濮嬪氨瑕佽冭檻濡備綍鑷睍銆傛垜浠冭檻鐨勮鍒欏氨鏄疓o1.3緙栬瘧鍣ㄥ繀欏葷敱Go1.2緙栬瘧錛孏o1.4鐨勭紪璇戝櫒蹇呴』鐢盙o1.4緙栬瘧錛屼互姝ょ被鎺ㄣ?<p>榪欐椂錛屾垜浠氨鏈変簡(jiǎn)涓涓竻鏅扮殑嫻佺▼鏉ョ敓鎴愬綋鍓嶇殑紼嬪簭錛氱紪璇慓o1.2鐨勫伐鍏烽摼錛堢敱C緙栧啓錛夛紝鐒跺悗浣跨敤瀹冪紪璇慓o1.3鐨勫伐鍏烽摼錛屼互姝ょ被鎺ㄣ傝繖閲岄渶瑕佷竴涓剼鏈潵鍋氳繖涓簨鎯咃紝鏉ヤ繚璇佸彧浼?xì)娑堣桟PU鐨勬椂闂磋岄潪鏌愪釜浜虹殑鏃墮棿銆傝繖鏍風(fēng)殑鑷睍錛屾瘡涓満鍣ㄥ彧浼?xì)鍋氫竴嬈★紝Go1.x鐨勫伐鍏烽摼灝嗕細(xì)鍦ㄦ湰鍦頒繚鐣欙紝騫跺湪鎵цall.bash鏉ョ紪璇慓o1.(x+1)宸ュ叿閾劇殑鏃跺欒鍐嶆浣跨敤銆?<p>鏄劇劧錛岄殢鐫鏃墮棿鐨勬帹縐昏繖縐嶈嚜涓炬柟寮忔槸涓嶅厖鍒嗙殑銆傚湪鍚庨潰鐨勫涓増鏈鍙戝竷涔嬪墠錛屼負(fù)緙栬瘧鍣ㄥ啓涓涓悗绔潵鐢熸垚C浠g爜涔熻鏄竴涓洿鏈夋剰涔夌殑浜嬫儏銆傝繖浜汣浠g爜涓嶈姹傛晥鐜囨垨鍙鎬э紝鍙姝g‘鍗沖彲銆傝繖浜汣浠g爜灝嗕細(xì)琚鍏ワ紝灝卞儚鎴戜滑絳懼叆鐢眣acc鐢熸垚鐨剏.tab.c鏂囦歡涓鏍楓傝繖鏍鳳紝鑷睍榪囩▼灝變細(xì)鍙樻垚錛氬厛鐢╣cc緙栬瘧C浠g爜鐢熸垚涓涓嚜灞曠紪璇戝櫒錛岀劧鍚庝嬌鐢ㄨ繖涓嚜灞曠紪璇戝櫒鏉ョ紪璇戠湡姝g殑緙栬瘧鍣ㄣ傜被浼間簬鍙︿竴涓嚜灞曡繃紼嬶紝榪欎釜鑷睍緙栬瘧鍣ㄥ皢浼?xì)鍦ㄦ湰鍦颁繚鐣欏Q屽茍鍦ㄦ瘡嬈℃墽琛宎ll.bash鐨勬椂鍊欓噸澶嶄嬌鐢紙涓嶇敤閲嶆柊緙栬瘧錛夈?<p><strong>鏇夸唬閫夋嫨</strong>榪樻湁涓浜涙瘮杈冩槑鏄劇殑鏇夸唬鏂規(guī)錛岄渶瑕佹垜浠鏄庝竴涓嬩負(fù)浠涔堟斁寮冧簡(jiǎn)榪欎簺閫夋嫨銆?<p>浠庝竴寮濮嬪啓涓涓紪璇戝櫒銆傜幇鍦ㄧ殑緙栬瘧鍣ㄦ湁涓涓潪甯擱噸瑕佺殑鐗瑰緛錛氫粬浠兘澶熸甯稿伐浣滐紙鎴栬呭叾鑷沖皯鑳藉婊¤凍鎵鏈夌敤鎴風(fēng)殑瑕佹眰錛夈傚敖綆o璇█姣旇緝綆鍗曪紝浣嗘槸緙栬瘧鍣ㄤ腑鏈夊緢澶氱粏寰殑緇嗚妭浼樺寲鍜屾敼鍐欙紝鐩存帴涓㈠純10鎴栨暟騫寸殑鍦ㄨ繖涓婇潰鐨勫姫鍔涙槸姣旇緝鎰氳牏鐨勩?<p>瀵圭紪璇戝櫒榪涜浜哄伐緲昏瘧銆傛垜浠凡緇忎互浜哄伐鐨勬柟寮忕炕璇戜簡(jiǎn)涓灝忛儴鍒咰/C++浠g爜鍒癎o璇█浜?jiǎn)銆傝繖涓繃紼嬫槸鏋嚗鑰屼笖鏄撻敊鐨勶紝涓旇繖浜涢敊璇潪甯哥殑緇嗗井鍙?qiáng)闅句互鍙戠幇銆傜浉鍙嶏紝浣跨敤鏈烘緲昏瘧浼?xì)迮炴垚涓浜涙瘮杈冧竴鑷寸殑閿欒錛岃岃繖浜涢敊璇槸鏄撲簬鍙戠幇鐨勶紱鑰屼笖涓嶄細(xì)鍥犱負(fù)鏋嚗鐨勮繃紼嬪紑灝忓樊銆侴o緙栬瘧鍣ㄧ殑浠g爜鏄庢樉鐨勬瘮鎴戜滑緲昏瘧鐨勪唬鐮佸寰堝錛氳秴榪?0,000琛孋浠g爜錛屾満姊扮炕璇戜細(xì)浣胯繖涓繃紼嬪鏄撲竴浜涖傚氨鍍廌ick Sites鍦?974騫磋鐨勪竴鏍鳳細(xì)鈥滅浉姣斿啓紼嬪簭錛屾垜瀹佹効鍐欎竴涓▼搴忔潵甯垜鍐欑▼搴忋傗?浣跨敤鏈烘鏉ョ炕璇戠紪璇戝櫒涔熸柟渚夸簬鍦ㄥ噯澶囧ソ鍒囨崲涔嬪墠錛屾垜浠彲浠ョ戶(hù)緇紑鍙戝畬鍠勭幇鏈夌殑C紼嬪簭銆?<p>鍙炕璇戝悗绔茍閾炬帴鍒癵o/parser鍜実o/types.浠庡墠绔紶緇欏悗绔殑鏁版嵁緇撴瀯鎵鍖呭惈鐨勪俊鎭腑錛実o/parser鍜実o/types鎵鑳芥彁渚涚殑闄や簡(jiǎn)API灝辨病鍏朵粬鐨勪笢瑗夸簡(jiǎn)銆傚鏋滀嬌鐢ㄨ繖浜涘簱鏉ユ浛浠e墠绔紝闇瑕佸啓浠g爜鏉ヨ漿鎹o/parser鍜実o/types鎵鑳芥彁渚涙暟鎹粨鏋勫埌鍚庣錛岃繖鏄竴涓潪甯稿娉涗笖鏄撳嚭閿欑殑宸ヤ綔銆傛垜浠浉淇′嬌鐢ㄨ繖浜涘簱鏄湁鎰忎箟鐨勶紝浣嗘洿鏄庢櫤鐨勬槸錛岀瓑鍒板皢緙栬瘧鍣ㄤ唬鐮佽皟鏁寸殑鏇村儚Go紼嬪簭錛屽垎鎴愮‘瀹氳竟鐣岀殑銆佸寘鍚鏄庢枃妗e拰鍗曞厓嫻嬭瘯瀛愬寘涔嬪悗鍐嶄嬌鐢ㄣ?<p>鏀懼純鐜版湁鐨勭紪璇戝櫒錛屼嬌鐢╣ccgo錛堟垨鑰単o/parser + go/types + LLVM, 鈥︼級(jí)銆傜幇鏈夌殑緙栬瘧鍣ㄦ槸Go璇█鏄懼緱姣旇緝鐏墊椿鐨勪竴涓噸瑕佺粍鎴愰儴鍒嗐傚鏋滃皾璇曚嬌鐢ㄥ熀浜庡ぇ閲忎唬鐮佺殑GCC鎴朙LVM鏉ュ紑鍙慓o紼嬪簭錛屾劅瑙変細(xì)鏈夌鍒癎o璇█鐨勭伒媧繪с傚彟澶栵紝GCC鏄ぇ閲廋浠g爜錛堢幇鍦ㄦ湁閮ㄥ垎C++錛夈丩LVM鏄ぇ閲廋++浠g爜鐨勭▼搴忋備互涓婂垪涓劇殑銆佺敤浜庤В閲婁笉浣跨敤鐜版湁緙栬瘧妗嗘灦浠g爜鐨勫嚑涓師鍥狅紝涔熼兘閫傜敤浜庢洿澶氱殑綾諱技鐨勪唬鐮佸簱銆?<h5>C璇█鐨勯暱鏈熶嬌鐢?/h5> <p>涓磋繎緇撴潫錛岃繖涓鍒掕繕鐣欎笅浜?jiǎn)鐢盋鍐欐垚鐨凱lan9鐨勫伐鍏烽摼鐨勪竴閮ㄥ垎銆傚湪闀挎湡鍙戝睍涓紝榪樻槸灝嗘墍鏈夌殑C浠庝唬鐮佹爲(wèi)鎺掗櫎鎺夋瘮杈冨ソ銆傛湰绔犺妭鎺ㄦ祴浜?jiǎn)涓涓嬭繖浠朵簨灝嗕細(xì)濡備綍鍙戠敓錛屼絾涓嶄繚璇佸叾鎸囧畾浼?xì)鍙戠敓鎴栬呮寜鐓ц繖縐嶅璺彂鐢熴?<p>榪愯鏃跺寘(runtime)銆?runtime鍖呯殑澶ч儴鍒嗛兘鏄敤C鍐欐垚錛屽熀浜庝竴浜涘悓鏍風(fēng)殑鍘熷洜錛孏o緙栬瘧鍣ㄤ篃鏄敤C瀹炵幇銆備絾鏄紝runtime鍖呰繙姣旂紪璇戝櫒鐨勪唬鐮侀噺瑕佸皬錛屼笖瀹冪幇鍦ㄥ凡緇忔槸鐢℅o鍜孋娣峰悎緙栧啓銆傚皢C浠g爜杞崲涓篏o浠g爜鏃訛紝涓嬈¤漿鍖栦竴閮ㄥ垎璨屼技涔熸槸鍙鐨勩傚叾涓紝涓昏閮ㄥ垎鏈夛細(xì)璋冨害鍣紙scheduler錛夛紝鍨冨溇鍥炴敹錛坱he garbage collector錛夛紝鏁e垪鏄犲皠琛紙hash map錛夌殑瀹炵幇錛屽拰channel鐨勫疄鐜般傦紙榪欓噷Go鍜孋浠g爜娣峰悎鐨勫緢铻嶆唇錛屾槸鍥犱負(fù)榪欓噷浣跨敤鐨?c鑰屼笉鏄痝cc鏉ョ紪璇戠殑C浠g爜銆傦級(jí) <p>C緙栬瘧鍣ㄣ?Plan 9鐨凜緙栬瘧鍣ㄦ湰韜氨鏄敤C鍐欐垚錛屽鏋滄垜浠浠嶨o鍖呭疄鐜伴噷闈㈢Щ闄ゆ墍鏈夌殑C浠g爜錛岄偅涔堟垜浠皢縐婚櫎榪欎簺緙栬瘧宸ュ叿錛氣済o tool 6c鈥濈瓑絳夛紝鍙﹀錛?c鐨勬枃浠朵篃灝嗕笉琚敮鎸佸嚭鐜扮殑Go鍖呯殑鐩綍閲岄潰銆傛垜浠簲璇ユ彁鍓嶅0鏄庤繖鏍風(fēng)殑璁″垝錛屼互渚夸嬌鐢–鐨勭涓夋柟鍖呮湁鏃墮棿鍘葷Щ闄よ繖綾籆浠g爜鐨勪嬌鐢ㄣ傦紙Cgo錛岀敱浜庝嬌鐢ㄤ簡(jiǎn)gcc鏉ユ浛浠?c錛屾墍浠ュ畠浠嶇劧鍙互浣滀負(fù)涓涓斿緞鏉ュ湪Go鍖呬腑浣跨敤C瀹炵幇閮ㄥ垎鍔熻兘銆傦級(jí)鍦℅o1鐨勫吋瀹規(guī)ф枃妗d腑娌℃湁鍖呭惈宸ュ叿閾句慨鏀圭殑鎻忚堪錛屼篃灝辨槸璇村幓鎺塁緙栬瘧鍣ㄦ槸琚厑璁哥殑銆?<p>姹囩紪鍣ㄣ?Plan 9鐨勬眹緙栧櫒涔熸槸鐢–瀹炵幇鐨勶紝浣嗚繖涓眹緙栧櫒鍙笉榪囨槸涓緋誨垪瑙f瀽鏍?wèi)缁勬垚鐨劷巰鍗曡В鏋愬櫒錛岃繖浣垮緱涓嶈鎵嬪姩榪樻槸鑷姩灝嗗畠緲昏瘧鎴怗o璇█閮芥瘮杈冪畝鍗曘?<p>榪炴帴鍣ㄣ?Plan 9鐨勮繛鎺ュ櫒涔熸槸鐢盋鍐欐垚銆傛渶榪戠殑涓浜涘伐浣滐紝宸茬粡灝嗗ぇ閮ㄥ垎鐨勮繛鎺ュ櫒宸ヤ綔鏀懼埌鐨勭紪璇戝櫒涓紝鑰屼笖錛屼篃宸茬粡鏈変釜璁″垝灝嗗墿浣欑殑閮ㄥ垎閲嶅啓鎴愪竴涓柊鐨勩佹洿綆鍗曠殑Go紼嬪簭銆傝漿縐誨埌緙栬瘧鍣ㄧ殑閮ㄥ垎榪炴帴鍣ㄤ唬鐮侊紝鐜板湪闇瑕侀殢鐫緙栬瘧鍣ㄧ殑鍘熸湁浠g爜涓璧瘋繘琛岀炕璇戙?<p>鍩轟簬Libmach鐨勫伐鍏? nm, pack, addr2line, 鍜宱bjdump銆?Nm鐜板湪宸茬粡浣跨敤Go璇█閲嶅啓銆侾ack鍜宎ddr2line鍙互浠諱綍涓澶╄閲嶅啓銆侽bjdump鐜板湪渚濊禆浜巐ibmach鐨勫弽姹囩紪鍣紝浣嗚繖浜涜漿鎹負(fù)Go涔熸槸姣旇緝綆鍗曠殑錛屼笉璁烘槸浣跨敤鏈烘榪樻槸浜哄伐緲昏瘧銆傛墍浠ュ熀浜庤繖鍑犵偣錛宭ibmach鏈韓灝嗘潵涔熷彲浠ヨ縐婚櫎銆?<p>  <p>鏉ユ簮: <a >http://www.oschina.net/translate/go-1-3-compiler-overhaul</a> <p>鑻辨枃鏉ユ簮:<a title="https://docs.google.com/document/d/1P3BLR31VA8cvLJLfMibSuTdwTuF7WWLux71CYD0eeD8/preview?sle=true&pli=1" >https://docs.google.com/document/d/1P3BLR31VA8cvLJLfMibSuTdwTuF7WWLux71CYD0eeD8/preview?sle=true&pli=1</a></p><img src ="http://www.shnenglu.com/sunicdavy/aggbug/205525.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/sunicdavy/" target="_blank">鎴橀瓊灝忕瓚</a> 2014-01-22 12:23 <a href="http://www.shnenglu.com/sunicdavy/archive/2014/01/22/205525.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>Windows涓媝rotoc-gen-go鐨勪嬌鐢ㄦ柟娉?goprotobuf)http://www.shnenglu.com/sunicdavy/archive/2014/01/21/205517.html鎴橀瓊灝忕瓚鎴橀瓊灝忕瓚Tue, 21 Jan 2014 08:22:00 GMThttp://www.shnenglu.com/sunicdavy/archive/2014/01/21/205517.htmlhttp://www.shnenglu.com/sunicdavy/comments/205517.htmlhttp://www.shnenglu.com/sunicdavy/archive/2014/01/21/205517.html#Feedback1http://www.shnenglu.com/sunicdavy/comments/commentRss/205517.htmlhttp://www.shnenglu.com/sunicdavy/services/trackbacks/205517.htmlgoprotobuf鏄痝o璇█涓啓鐨勮緝濂界殑涓涓疄鐜? linux涓嬬殑瀹夎闈炲父鏂逛究, 浣嗘槸windows闇瑕佹坊鍔爌lugin鐨勮礬寰勬墠鑳借瘑鍒?/p>

    鍏堢‘璁や綘宸茬粡璁劇疆濂紾OPATH, 騫跺畨瑁呭ソgoprotobuf

    鎴戠殑goprotobuf璺緞鏄爣鍑嗙殑: $GOPATH/src/code.google.com/p/goprotobuf

    緙栬瘧騫跺畨瑁卲roto宸ュ叿:

    go install code.google.com/p/goprotobuf/proto

    go install code.google.com/p/goprotobuf/protoc-gen-go

    紜$GOPATH/bin涓嬫湁protoc-gen-go.exe

     

    緙栬瘧proto鏂囦歡杈撳嚭go鏂囦歡:

    浣跨敤鍛戒護(hù)琛岀紪璇憄ath/to/protoc.exe  --plugin=protoc-gen-go=$GOPATH\bin\protoc-gen-go.exe --go_out . --proto_path .  XXX.proto

    榪欓噷欏轟究璐村嚭notepad++浣跨敤nppexec鎻掍歡鐨刢ommand

    "path/to/protoc.exe"  --plugin=protoc-gen-go=path/to/gopath/bin/protoc-gen-go.exe --go_out $(CURRENT_DIRECTORY) --proto_path $(CURRENT_DIRECTORY)  $(FULL_CURRENT_PATH)

    P.S.

    protoc璇瘋嚜琛屽湪protobuf瀹樼綉涓嬭澆C++婧愮爜鍚庣紪璇?/p>

    ]]>
    Qt鎶鏈紭鍔?/title><link>http://www.shnenglu.com/sunicdavy/archive/2014/01/14/205359.html</link><dc:creator>鎴橀瓊灝忕瓚</dc:creator><author>鎴橀瓊灝忕瓚</author><pubDate>Tue, 14 Jan 2014 03:53:00 GMT</pubDate><guid>http://www.shnenglu.com/sunicdavy/archive/2014/01/14/205359.html</guid><wfw:comment>http://www.shnenglu.com/sunicdavy/comments/205359.html</wfw:comment><comments>http://www.shnenglu.com/sunicdavy/archive/2014/01/14/205359.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/sunicdavy/comments/commentRss/205359.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/sunicdavy/services/trackbacks/205359.html</trackback:ping><description><![CDATA[<p>1. Qt榪欎釜C++鐨勫浘褰㈠簱鐢盩rolltech鍦?994騫村乏鍙沖紑鍙戙傚畠鍙互榪愯鍦╓indows,Mac OS X, Unix錛岃繕鏈夊儚Sharp Zaurus榪欑被宓屽叆寮忕郴緇熶腑銆俀t鏄畬鍏ㄩ潰鍚戝璞$殑銆?<p>2. Qt鐨勬灦鏋勬槑鏄炬槸緇忚繃綺懼績(jī)璁捐鐨勯潰鍚戝璞$殑銆俀t鍥犳鍦ㄥ懡鍚嶏紝緇ф壙錛岀被鐨勭粍緇囩瓑鏂歸潰淇濇寔浜?jiǎn)浼樋U鐨勪竴鑷存с備綘鍙渶瑕佹彁渚涘敮涓涓涓柟娉曠殑鍙傛暟錛屼粎姝や竴涓傚湪涓嶅悓鐨勭被涓皟鐢ㄦ柟寮忎篃鏄湁寰堝己鐨勮繛璐с傝繑鍥炲間篃寰堟湁閫昏緫鎬с傛墍鏈変竴鍒囪揪鍒頒簡(jiǎn)綆鍗曞拰寮哄ぇ鐨勫拰璋愮粺涓銆備竴鏃︿綘浣跨敤浜?jiǎn)鍏朵腑涓涓被錛屽叾浠栫殑綾諱篃灝辮Е綾繪梺閫氾紝鍥犱負(fù)浠栦滑鏄竴鑷寸殑銆?<p>3. Qt涓嶅己鍒朵嬌鐢ㄤ換浣曡璁℃ā寮忋傚鏋滀綘璁や負(fù)鎭板綋錛屼嬌鐢―ocument/view娌℃湁浠諱綍闂銆備笉浣跨敤涔熸病鏈変換浣曢棶棰樸?<p>4. MFC鏄簨浠墮┍鍔ㄧ殑鏋舵瀯銆傝鎵ц浠諱綍鎿嶄綔錛岄兘蹇呴』鏄鐗瑰畾鐨勬秷鎭綔鍑哄搷搴斻俉indows瀵瑰簲鐢ㄧ▼搴忓彂閫佺殑淇℃伅鏁頒互鍗冭錛岄仐鎲劇殑鏄紝瑕佸垎娓呮榪欎簺鍒嗙箒鑺滄潅鐨勬秷鎭槸寰堝洶闅劇殑錛屽茍涓斿叧浜庤繖鏂歸潰鐨勬枃妗e茍涓嶈兘寰堝ソ鐨勮В鍐寵繖浜涢棶棰樸?br>Qt鐨勬秷鎭満鍒舵槸寤虹珛鍦⊿IGNAL()鍙戦佸拰SLOT()鎺ュ彈鐨勫熀紜涓婄殑銆傝繖涓満鍒舵槸瀵硅薄闂村緩绔嬭仈緋葷殑鏍稿績(jī)鏈哄埗銆傚埄鐢⊿IGNAL()鍙互浼犻掍換浣曠殑鍙傛暟銆備粬鐨勫姛鑳介潪甯哥殑寮哄ぇ銆傚彲浠ョ洿鎺ュぇ浼犻掍俊鍙風(fēng)粰SLOT()錛屽洜姝ゅ彲浠ユ竻妤氱殑鐞嗚В瑕佸彂鐢熺殑浜嬫儏銆備竴涓被鎵鍙戦佺殑淇″彿鐨勬暟閲忛氬父闈炲父鐨勫皬(4鎴栬?)錛屽茍涓旀枃妗d篃闈炲父鐨勯綈鍏ㄣ傝繖璁╀綘鎰熻鍒頒竴鍒囧敖鍦ㄦ帉鎻′箣涓係IGNAL/SLOT鏈哄埗綾諱技浜嶫ava涓璴istener鏈哄埗,涓嶈繃榪欑鏈哄埗鏇村姞杞婚噺綰э紝鍔熻兘鏇撮綈鍏ㄣ?<p>5. Qt鎷ユ湁闈炲父綆鍗曡屽張涓嶅け寮哄ぇ鐨刲ayout鏈哄埗錛屽竷灞鐏墊椿澶氬彉<br>Qt榪樻彁渚涗簡(jiǎn)涓涓浘褰㈢敤鎴峰伐鍏鳳紝Qt Designer錛屽彲浠ョ敤鏉ュ府鍔╁緩绔嬬敤鎴風(fēng)晫闈€傚彲浠ヤ慨鏀規(guī)墍浣跨敤鐨勪換浣曟帶浠剁殑灞炴с備笉鐢ㄥ皢浠栦滑鏀懼湪涓ユ牸鐨勪綅緗紝鍙互閫氳繃layout瀹岀編鐨勭粍緇囦粬浠傝繖涓伐鍏鋒墍浜х敓鐨勪唬鐮佹垜浠槸鍙互瀹為檯涓婇槄璇誨茍涓斿彲浠ョ悊瑙g殑銆傜敓鎴愮殑浠g爜鍗曠嫭鏀懼湪涓涓枃浠墮噷錛屽湪緙栫▼鐨勫悓鏃訛紝浣犲彲浠ラ殢蹇?jī)鎵嬈茬殑澶氭閲嶆柊鐢熸垚鐢ㄦ埛鐣岄潰銆?br>Qt Designer鍙互璁╀綘瀹屾垚璁稿鍦∕FC涓笉鍙兘瀹屾垚鐨勪換鍔★紝姣斿鐢ㄩ鍏堝~濂界殑鐢熸垚listview錛屽湪姣忎釜tab涓婄敤涓嶅悓鐨剉iew鏉ヤ嬌鐢╰ab 鎺у埗銆?<p>6. 浣跨敤MFC錛屼竴閮ㄥ垎寮鍙戣繃紼嬭渚濋潬鈥渞esources鈥?鍦ㄥ緢澶氱殑妗堜緥涓紑鍙戣呭繀欏諱嬌鐢ㄤ粬浠傝繖鏍蜂細(xì)瀵艱嚧濡備笅鐨勫悗鏋滐細(xì)鍑轟簡(jiǎn)Visual Studio錛屼綘寰堥毦浣跨敤鍏朵粬鐨勫伐鍏鋒潵瀹屾垚寮鍙戙?br>璧勬簮緙栬緫鍣ㄤ粎鏈夋湁闄愮殑鍔熻兘錛屾瘮濡傦細(xì)閫氳繃Dialog緙栬緫鍣ㄤ笉鍙兘鏀瑰彉鎵鏈夌殑灞炴э紝涓浜涘睘鎬у彲浠ユ敼鍙橈紝鍙︿竴浜涘睘鎬у垯涓嶅彲鑳芥敼鍙樸?璇戣呮敞錛氫笅闈㈣繕鏈変袱鏉¢檲榪癕FC緙虹偣鐨勫疄渚嬶紝浣嗘垜鎰熻榪欎簺宸茬粡澶熻鏄庨棶棰樹(shù)簡(jiǎn)錛屾殏鏃跺垹鑺備笉璇?<br>鐒惰孮t騫舵病鏈夎祫婧愮殑姒傚康錛岃繖灝辮В鍐充簡(jiǎn)浠ヤ笂鎵鎻愬埌鐨勯棶棰樸俀t鎻愪緵浜?jiǎn)涓涓剼鏈嬌寰楄兘灝嗙紪鍏ヤ綘鐨勪唬鐮併傚浜庣晫闈㈣璁★紝Qt Designer鍒欏垱寤轟簡(jiǎn)鍙鐨勪唬鐮併?<p>7. Qt鐨勬枃妗e畬澶囦笖璇︾粏鐨勮鐩栦簡(jiǎn)Qt鐨勬柟鏂歸潰闈紝绔熺劧浠呮湁18M銆傛瘡涓涓被鍜屾柟娉曢兘琚灝芥弿榪幫紝宸ㄧ粏闈¢仐錛屼婦渚嬪厖瀹炪傞氳繃Trolltech鍏徃鎻愪緵鐨勯摼鎺ユ垨鑰呮槸Qt Assistant宸ュ叿錛屽彲浠ユ柟渚跨殑浠庝竴涓被鎴栬呮柟娉曡煩杞埌鍏朵粬鐨勭被銆傛枃妗h繕鍖呭惈浜?jiǎn)涓涓垵瀛﹁呮暀紼嬪拰涓浜涘吀鍨嬪簲鐢ㄧ殑渚嬪瓙 <p>8. 鍦ㄥ彂甯冨熀浜嶮FC鐨勮蔣浠舵椂錛屽繀欏諱緷闈犲瓨鍦ㄤ簬瀹㈡埛鐢?shù)鑴戜笂鐨凪FC銆備絾鏄繖鏄笉瀹夊叏鐨勶紝鍚屾牱鏄疢FC42.dll錛屽彲浠ュ熀浜庣浉鍚岀殑搴撳緱鍒?涓笉鍚岀殑鐗堟湰銆傞氬父錛岄渶瑕佹鏌ユ槸鍚︽嫢鏈夋紜殑MFC42.dll鐗堟湰錛屽鏋滀笉鏄紝灝卞崌綰у畠銆備絾鏄崌綰FC42.dll浼?xì)鏀瑰彉寰堝枋Y浠剁殑琛屼負(fù)銆?br>Qt鍒欐病鏈夎繖涓闄╋紝鍥犱負(fù)Qt鍘嬫牴灝辨病鏈夆滃崌綰ф暣涓郴緇熲濊繖涓蹇點(diǎn)?<p>9. Qt 瀹屽叏鏀寔CSS2錛岃繖浣垮緱Qt搴旂敤紼嬪簭錛屾棤璁烘槸緹庡寲榪樻槸鎹㈣偆錛屽疄鐜拌搗鏉ラ兘鐩稿綋綆鍗?<p>10. Qt鑷甫緲昏瘧鍣紝鍙互闅忔剰鍒囨崲杞歡璇█ <p>  <p>鍦ㄤ嬌鐢≦t鍔ㄦ侀摼鎺ュ簱鐨勬儏鍐典笅錛屾牴鎹甃GPL鍗忚瑙勫畾錛屾槸鍙互闂簮鍙戝竷浠諱綍褰㈠紡鐨勭▼搴忕殑銆?<p>鍙傝冮摼鎺ワ細(xì) <p>鏉ヨ嚜Qt瀹樻柟璁哄潧鐨勮璁猴細(xì)<a >http://qt-project.org/forums/viewthread/2428</a> <p>鍗氬閾炬帴錛?a >http://devbean.blog.51cto.com/448512/313477</a> <p>  <p>  <p>杞嚜:<a >http://blog.csdn.net/superzhaifd/article/details/18224923</a> <a >緲熷啲鐙糭Trump</a> <p>  <p>鏈漢杈冨枩嬈㈢浜岀偣: 涓嶄嬌鐢ㄤ換浣曡璁℃ā寮忔瀯寤哄簳灞? 璁捐妯″紡鍙槸鎬濇兂, 涔熸槸緹佺粖. 澶ч噺浣跨敤鍙細(xì)璁╃郴緇熻噧鑲?</p><img src ="http://www.shnenglu.com/sunicdavy/aggbug/205359.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/sunicdavy/" target="_blank">鎴橀瓊灝忕瓚</a> 2014-01-14 11:53 <a href="http://www.shnenglu.com/sunicdavy/archive/2014/01/14/205359.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>璁¬C鍔╂墜鍦ㄥ閮ㄦ枃浠跺彉鍖栨椂鑷姩parsehttp://www.shnenglu.com/sunicdavy/archive/2013/11/13/204237.html鎴橀瓊灝忕瓚鎴橀瓊灝忕瓚Wed, 13 Nov 2013 02:39:00 GMThttp://www.shnenglu.com/sunicdavy/archive/2013/11/13/204237.htmlhttp://www.shnenglu.com/sunicdavy/comments/204237.htmlhttp://www.shnenglu.com/sunicdavy/archive/2013/11/13/204237.html#Feedback1http://www.shnenglu.com/sunicdavy/comments/commentRss/204237.htmlhttp://www.shnenglu.com/sunicdavy/services/trackbacks/204237.html鎴戜滑鐨勫伐紼嬩嬌鐢╪otepad++鎸傝澆protobuf鐨刾rotoc浠g爜鐢熸垚鍣? 姣忔鐢熸垚鍚? 鍔╂墜閮借鎵嬪姩parse涓嬈? 寰堥夯鐑? 鐮旂┒浜?jiǎn)涓媀C鍔╂墜鐨勯夐」, 鎸変笅鍥鵑厤緗嵆鍙潤(rùn)榛樺埛鏂版枃浠?/p>

    image



    ]]>
    VC宸ョ▼鐨勫懡浠よ緙栬瘧娉?/title><link>http://www.shnenglu.com/sunicdavy/archive/2013/11/05/204099.html</link><dc:creator>鎴橀瓊灝忕瓚</dc:creator><author>鎴橀瓊灝忕瓚</author><pubDate>Tue, 05 Nov 2013 07:20:00 GMT</pubDate><guid>http://www.shnenglu.com/sunicdavy/archive/2013/11/05/204099.html</guid><wfw:comment>http://www.shnenglu.com/sunicdavy/comments/204099.html</wfw:comment><comments>http://www.shnenglu.com/sunicdavy/archive/2013/11/05/204099.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.shnenglu.com/sunicdavy/comments/commentRss/204099.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/sunicdavy/services/trackbacks/204099.html</trackback:ping><description><![CDATA[<p>鎴戜嬌鐢ㄧ殑鏄疺S2010, 鑰佺増鏈殑鏈祴</p> <p>call "c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat"<br>    cd 浣犵殑宸ョ▼sln鐩綍</p> <p>MSBuild 鈥滀綘鐨勫伐紼?sln鈥?/t:Build /p:Configuration=Release /maxcpucount:4</p> <p>瑙i噴: 棣栧厛璋冪敤VC涓婁笅鏂囧緩绔嬫壒澶勭悊, 杞埌浣犵殑sln鐩綍,淇濊瘉宸ヤ綔鐩綍姝g‘, /maxcpucount鏄茍琛岀紪璇? 鏍規(guī)嵁浣犵殑闇姹傞厤緗嵆鍙?/p><img src ="http://www.shnenglu.com/sunicdavy/aggbug/204099.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/sunicdavy/" target="_blank">鎴橀瓊灝忕瓚</a> 2013-11-05 15:20 <a href="http://www.shnenglu.com/sunicdavy/archive/2013/11/05/204099.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>浣跨敤HG(Mercurial)鍋氬垎甯冨紡浠g爜綆$悊鐨勪竴浜涚粡楠?/title><link>http://www.shnenglu.com/sunicdavy/archive/2013/10/25/203915.html</link><dc:creator>鎴橀瓊灝忕瓚</dc:creator><author>鎴橀瓊灝忕瓚</author><pubDate>Fri, 25 Oct 2013 14:51:00 GMT</pubDate><guid>http://www.shnenglu.com/sunicdavy/archive/2013/10/25/203915.html</guid><wfw:comment>http://www.shnenglu.com/sunicdavy/comments/203915.html</wfw:comment><comments>http://www.shnenglu.com/sunicdavy/archive/2013/10/25/203915.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.shnenglu.com/sunicdavy/comments/commentRss/203915.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/sunicdavy/services/trackbacks/203915.html</trackback:ping><description><![CDATA[<p>璺濈絎竴嬈′嬌鐢℉G宸茬粡鐢?,3騫翠簡(jiǎn)銆?浠庣涓嬈″皢HG鐢ㄤ簬鑷繁鐨勯」鐩紝 鐢║鐩樺悓姝ヤ唬鐮? 鍒扮幇鍦ㄥ皢HG搴旂敤浜巐inux, 鐗堟湰宸紓鍙戝竷, 欏圭洰鍐呴儴澶氫漢鐨勫垎甯冨紡寮鍙戯紝宸茬粡鎰熻闈炲父鐔熺粌銆?/p> <p>鎴戜滑鐨勯」鐩殑瀹㈡埛绔拰鏈嶅姟鍣ㄥ潎鐢盋++寮鍙戯紝鐢變簬HG璁捐鐨勭悊蹇墊槸1涓伐紼嬪搴?涓簱錛?鍥犳鎴戜滑鐨勫鎴風(fēng)鍜屾湇鍔″櫒鏄垎寮鐨勪袱涓狧G浠g爜搴撱傝繖縐嶆濇兂鍜孲VN綆$悊鐨勪唬鐮佹湁寰堝ぇ涓嶅悓銆係VN鏃朵唬鐨勬父鎴忓伐紼嬪ぇ澶氭槸榪欐牱瀹夋帓鐩綍鐨勶細(xì)</p> <p>common <-瀹㈡埛绔拰鏈嶅姟鍣ㄥ叡浜殑搴?/p> <p>client<-瀹㈡埛绔殑浠g爜</p> <p>server<-鏈嶅姟鍣ㄧ殑浠g爜</p> <p>閫氳繃SVN寮哄ぇ鐨勬潈闄愭帶鍒剁粰涓嶅悓鐨勫墠鍚庣璧嬩簣鏉冮檺錛屽墠鍚庣紼嬪簭灝嗚幏寰椾笉鍚岀殑鐩綍緇勫悎銆係VN涓嬬殑榪欑宸ョ▼緇勭粐鏂規(guī)硶鑳藉緢濂界殑瑙e喅鍗曚竴璇█璺ㄥ伐紼嬬殑浠g爜錛屽崗璁叡浜棶棰樸傝櫧鐒剁幇鍦ㄥ悇縐岴rlang錛孞ava鐨勬湇鍔″櫒璇█涓巃s3,lua鐨勪笉鍚屽鎴風(fēng)鑴氭湰璇█娣鋒潅鐨勬椂浠e凡緇忔棤鎵璋撹繖縐嶈佸紡璁捐鎬濇兂銆備絾鏄浜庢垜浠函C++鐨勬墜娓告潵璇達(dá)紝榪樻槸蹇呴』闈㈠鍒嗗竷寮忎唬鐮佺鐞嗗伐鍏蜂笅鐨勪唬鐮佽法搴撳叡浜棶棰樸?/p> <p>鎴戝氨榪欎釜闂?shù)笌澶汄q村墠琚垜鎺ㄨ崘榪嘓G鐨勬湅鍙嬭璁鴻搗鏉ワ紝浠栦滑涔熷瓨鍦ㄦ垜浠繖涓棶棰橈紝浣嗘槸浠栦滑鐨勮В鍐蟲(chóng)柟娉曞氨鏄瘡涓伐紼嬩竴涓簱銆傜劧鍚庤鎴戦棶鍒幫細(xì)鈥滃悓姝ヤ竴嬈′唬鐮侊紝涓嬈℃鐨勬墦寮涓嶅悓鐨勫簱錛堜粬浠鎴風(fēng)+鏈嶅姟鍣ㄤ竴鍏?鍒?涓狧G浠g爜搴擄級(jí)錛岃繘琛屽悓姝ワ紝 瀹屾垚鍚庯紝 榪樿鍙嶅悜pull錛屼笉绱晩錛熲濓紝 鏈嬪弸鍥炵瓟錛氣滀範(fàn)鎯氨濂解?/p> <p>闅忓悗錛屾垜涔熺炕鏌ヤ簡(jiǎn)git瀵瑰欏圭洰鐨勬敮鎸併傚緱鍒扮殑絳旀涔熸槸璺烪G涓鏍風(fēng)殑錛?榪欑被鍒嗗竷寮忎唬鐮佺鐞嗗伐鍏鋒湰韜殑璁捐鐞嗗康鍙湁璐﹀彿錛岃屾棤鏉冮檺錛?鏈韓灝辨槸鍩轟簬寮婧愪唬鐮佺簿紲炶璁$殑宸ュ叿錛?濡傛灉鍒嗕簡(jiǎn)鏉冮檺錛屽矀涓嶆槸榪濊儗寮婧愮簿紲烇紙榪欐槸鎴戞兂鐨?img class="wlEmoticon wlEmoticon-smile" style="border-top-style: none; border-left-style: none; border-bottom-style: none; border-right-style: none" alt="寰瑧" src="http://www.shnenglu.com/images/cppblog_com/sunicdavy/Windows-Live-Writer/09a081eb5d4c_13A7F/wlEmoticon-smile_2.png">錛夈傚洜姝ゅ鏋滄兂綆$悊澶氫釜欏圭洰浠g爜錛?瑕佷箞澶氬簱錛岃涔堝悎搴撱?/p><img src ="http://www.shnenglu.com/sunicdavy/aggbug/203915.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/sunicdavy/" target="_blank">鎴橀瓊灝忕瓚</a> 2013-10-25 22:51 <a href="http://www.shnenglu.com/sunicdavy/archive/2013/10/25/203915.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>紼嬪簭寮傚父VC璋冭瘯鍣ㄦ棤娉曞畾浣嶇殑澶勭悊http://www.shnenglu.com/sunicdavy/archive/2013/06/27/201339.html鎴橀瓊灝忕瓚鎴橀瓊灝忕瓚Thu, 27 Jun 2013 03:05:00 GMThttp://www.shnenglu.com/sunicdavy/archive/2013/06/27/201339.htmlhttp://www.shnenglu.com/sunicdavy/comments/201339.htmlhttp://www.shnenglu.com/sunicdavy/archive/2013/06/27/201339.html#Feedback0http://www.shnenglu.com/sunicdavy/comments/commentRss/201339.htmlhttp://www.shnenglu.com/sunicdavy/services/trackbacks/201339.html鏈榪戣皟璇曠▼搴忓彂鐜扮┖鎸囬拡鑰佹棤娉曞畾浣? 浣跨敤涓涓渶綆鍗曠殑main鍑芥暟鍋氱┖鎸囬拡媯(gè)鏌ヤ篃涓鏍? 鍏蜂綋鐥囩姸瑙佸浘

    image

    pdb鍔犺澆鏄甯哥殑, 浣嗘槸鍫嗘爤娌℃樉紺哄姝ょ畝鍗曠殑絀烘寚閽堣闂綅緗? Google浜?jiǎn)浠ヤ?/p>

    http://blogs.msdn.com/b/debugger/archive/2010/05/12/visual-studio-debugger-fails-to-catch-unhandled-exception-for-a-windows-form-or-wpf-application.aspx

    瑙e喅鏂規(guī)硶: Debug->Exception涓皢鎵鏈夊紓甯稿嬀閫夊嵆鍙?/p>

     

    涓嶇煡閬撳摢閲岀殑璁劇疆瀵艱嚧濡傛璇″紓鐨勯棶棰? 瀹崇殑鎴戦噸瑁呬竴嬈?.



    ]]>
    2D娓告垙蹇呭鐨凾exturePackerhttp://www.shnenglu.com/sunicdavy/archive/2013/06/05/200812.html鎴橀瓊灝忕瓚鎴橀瓊灝忕瓚Wed, 05 Jun 2013 07:44:00 GMThttp://www.shnenglu.com/sunicdavy/archive/2013/06/05/200812.htmlhttp://www.shnenglu.com/sunicdavy/comments/200812.htmlhttp://www.shnenglu.com/sunicdavy/archive/2013/06/05/200812.html#Feedback1http://www.shnenglu.com/sunicdavy/comments/commentRss/200812.htmlhttp://www.shnenglu.com/sunicdavy/services/trackbacks/200812.html 涓嬭澆http://www.codeandweb.com/texturepacker/download
    宸ュ叿鏈韓涓嶆槸鍏嶈垂鐨? 浣嗘槸鍙互閫氳繃鐢寵鑾峰緱鍏嶈垂鐨凩icence, 鐐?a >榪欓噷鐪?br /> 鏉′歡鏄湁涓涓嚜宸辯殑鍗氬, 騫朵笖浠庝簨娓告垙/杞歡/緗戦〉鏂歸潰鐨勫紑鍙? 涓旇繎鏈熸湁5綃囨枃绔犲彂琛?br /> 浣滆呯壒鍒己璋冿紝寰崥涓嶇瓑浜庡崥瀹?br />
    濉啓濂介偖綆卞湴鍧錛岃涓嶄簡(jiǎn)鍑犱釜灝忔椂灝卞彲浠ヨ幏鍙栧埌搴忓垪鍙?img src ="http://www.shnenglu.com/sunicdavy/aggbug/200812.html" width = "1" height = "1" />

    ]]>
    [杞琞Lisp鐨勬案鎭掍箣閬?/title><link>http://www.shnenglu.com/sunicdavy/archive/2012/06/12/178505.html</link><dc:creator>鎴橀瓊灝忕瓚</dc:creator><author>鎴橀瓊灝忕瓚</author><pubDate>Tue, 12 Jun 2012 04:38:00 GMT</pubDate><guid>http://www.shnenglu.com/sunicdavy/archive/2012/06/12/178505.html</guid><wfw:comment>http://www.shnenglu.com/sunicdavy/comments/178505.html</wfw:comment><comments>http://www.shnenglu.com/sunicdavy/archive/2012/06/12/178505.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/sunicdavy/comments/commentRss/178505.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/sunicdavy/services/trackbacks/178505.html</trackback:ping><description><![CDATA[<h5>鏈枃杞嚜: <a >http://coolshell.cn/articles/7526.html</a></h5> <p> </p> <h5>Lisp涔嬮瓍</h5> <p>闀夸箙浠ユ潵錛孡isp涓鐩磋璁稿浜鴻涓哄彶涓婃渶闈炲嚒鐨勭紪紼嬭璦銆傚畠涓嶄粎鍦?0澶氬勾鍓嶈癁鐢熺殑鏃跺欏甫鏉ヤ簡(jiǎn)璇稿闈╁懡鎬х殑鍒涙柊騫舵瀬澶у湴褰卞搷浜?jiǎn)鍚庢潵缂柦E嬭璦鐨勫彂灞曪紝鍗充嬌鍦ㄤ竴澶ф壒鐜頒唬璇█涓嶆柇娑岀幇鐨勪粖澶╋紝Lisp鐨勮澶氱壒鎬т粛鐒舵湭琚秴瓚娿傚綋鍚勫紡鍚勬牱鐨勭紪紼嬭璦鎽嗗湪闈㈠墠錛屾垜浠彲浠ヤ粠榪愯鏁堢巼銆佸涔?fàn)鏇簿U褲佺ぞ鍖烘椿璺冨害銆佸巶鍟嗘敮鎸佺瓑澶氱涓嶅悓鐨勮搴﹁繘琛岃瘎鍒ゅ拰閫夋嫨錛屼絾鎴戠壒鍒湅涓殑涓鐐瑰湪浜庤璦鑳藉惁鏈夋晥鍦拌〃杈劇紪紼嬭呯殑璁捐鎬濇兂銆傚涔?fàn)C鎰忓懗鐫瀛︿範(fàn)濡備綍鐢ㄨ繃紼嬫潵琛ㄨ揪璁捐鎬濇兂錛屽涔?fàn)Java鎰忓懗鐫瀛︿範(fàn)濡備綍鐢ㄥ璞℃潵琛ㄨ揪璁捐鎬濇兂錛岃岃櫧鐒禠isp涓庡嚱鏁板紡緙栫▼鏈夊緢澶х殑鍏崇郴錛屼絾瀛︿範(fàn)Lisp緇濅笉浠呬粎鏄涔?fàn)濡備綍鐢ㄥ嚱鏁拌〃杈捐璁℃濇兂銆傚疄闄呬笂錛?strong>鍑芥暟寮忕紪紼嬪茍闈濴isp鐨勬湰璐?/strong>錛屽湪宸茬粡鎺屾彙浜?jiǎn)lambda銆侀珮闃跺嚱鏁般侀棴鍖呫佹儼鎬ф眰鍊肩瓑鍑芥暟寮忕紪紼嬫蹇典箣鍚庯紝瀛︿範(fàn)Lisp浠嶇劧澶уぇ鍔犳繁浜?jiǎn)鎴戝缂柦E嬬殑鐞嗚В銆?strong>瀛︿範(fàn)Lisp鎵鏀惰幏鐨勬槸濡備綍鈥滆嚜鐢卞湴鈥濊〃杈句綘鐨勬濇兂</strong>錛岃繖姝f槸Lisp鏈澶х殑欖呭姏鎵鍦紝涔熸槸榪欓棬鍙よ佺殑璇█浠嶇劧鍏鋒湁寰堝己鐨勭敓鍛藉姏鐨勬牴鏈師鍥犮?<h5>Lisp涔嬫簮</h5> <p>Lisp鎰忎負(fù)琛ㄥ鐞?List Processing)錛屾簮鑷璁¤匤ohn McCarthy浜?960騫村彂琛ㄧ殑涓綃囪鏂囥婄鍙瘋〃杈懼紡鐨勯掑綊鍑芥暟鍙?qiáng)鍏舵満鍣ㄨ绠椼嬨侻cCarthy鍦ㄨ繖綃囪鏂囦腑鍚戞垜浠睍紺轟簡(jiǎn)鐢ㄤ竴縐嶇畝鍗曠殑鏁版嵁緇撴瀯S琛ㄨ揪寮?S-expression)鏉ヨ〃紺轟唬鐮佸拰鏁版嵁錛屽茍鍦ㄦ鍩虹涓婃瀯寤轟竴縐嶅畬鏁寸殑璇█銆侺isp璇█褰㈠紡綆鍗曘佸唴娑墊繁鍒伙紝Paul Graham鍦ㄣ奓isp涔嬫牴婧愩嬩腑灝嗗叾瀵圭紪紼嬬殑璐$尞涓庢鍑犻噷寰峰鍑犱綍鐨勮礎(chǔ)鐚浉鎻愬茍璁恒?<h5>Lisp涔嬪艦</h5> <p>鐒惰岋紝涓庢暟瀛︿笘鐣屼腑綆鍗曟槗鎳傜殑嬈ф皬鍑犱綍褰㈡垚椴滄槑瀵規(guī)瘮錛岀▼搴忎笘鐣屼腑鐨凩isp鍗翠竴鐩存槸涓縐嶅彜鑰佽屽張紲炵鐨勫瓨鍦紝鐪熸鐞嗚В鍏剁簿濡欑殑浜鴻繕鏄皯鏁般備粠琛ㄩ潰涓婄湅錛孡isp鏈鏄庢樉鐨勭壒寰佹槸瀹冣滃彜鎬濈殑S琛ㄨ揪寮忚娉曘係琛ㄨ揪寮忔槸涓涓師瀛?atom)錛屾垨鑰呰嫢騫睸琛ㄨ揪寮忕粍鎴愮殑鍒楄〃(list)錛岃〃杈懼紡涔嬮棿鐢ㄧ┖鏍煎垎寮錛屾斁鍏ヤ竴瀵規(guī)嫭鍙蜂腑銆傗滃垪琛ㄢ滆繖涓湳璇彲鑳戒細(xì)瀹規(guī)槗璁╀漢鑱旀兂鍒版暟鎹粨鏋勪腑鐨勯摼琛ㄤ箣綾葷殑綰垮艦緇撴瀯錛屽疄闄呬笂錛孡isp鐨勫垪琛ㄦ槸涓縐嶅彲宓屽鐨勬爲(wèi)褰㈢粨鏋勩備笅闈㈡槸涓浜汼琛ㄨ揪寮忕殑渚嬪瓙:<pre>foo () (a b (c d) e) (+ (* 2 3) 5) (defun factorial (N) (if (= N 1) 1 (* N (factorial (- N 1))) ) ) </pre> <p>鎹錛岃繖涓彜鎬殑S琛ㄨ揪寮忔槸McCarthy鍦ㄥ彂鏄嶭isp鏃跺欐墍閲囩敤鐨勪竴縐嶄復(fù)鏃惰娉曪紝浠栧疄闄呬笂鏄噯澶囦負(fù)Lisp鍔犱笂涓縐嶈縐頒負(fù)M琛ㄨ揪寮?M-expression)鐨勮娉曪紝鐒跺悗鍐嶆妸M琛ㄨ揪寮忕紪璇戜負(fù)S琛ㄨ揪寮忋傜敤涓涓氫織鐨勭被姣旓紝S琛ㄨ揪寮忕浉褰撲簬鏄疛VM鐨勫瓧鑺傜爜錛岃孧琛ㄨ揪寮忕浉褰撲簬Java璇█錛屼絾鏄悗鏉isp鐨勪嬌鐢ㄨ呴兘鐔熸?zhèn)夠q跺枩嬈笂浜?jiǎn)鐩存帴鐢⊿琛ㄨ揪寮忕紪鍐欑▼搴忥紝騫朵笖浠栦滑鍙戠幇S琛ㄨ揪寮忔湁璁稿鐙壒鐨勪紭鐐癸紝鎵浠琛ㄨ揪寮忕殑寮曞叆涔熷氨琚棤闄愭湡寤惰繜浜?jiǎn)銆? <p>璁稿Lisp鐨勫叆闂ㄦ枃绔犻兘姣旇緝寮鴻皟Lisp鐨勫嚱鏁板紡鐗規(guī)э紝鑰屾垜璁や負(fù)榪欐槸涓縐嶈瀵箋傜湡姝g殑Lisp涔嬮棬涓嶅湪鍑芥暟寮忕紪紼嬶紝鑰屽湪S琛ㄨ揪寮忔湰韜紝Lisp鏈澶х殑濂ョ灝辮棌鍦⊿琛ㄨ揪寮忓悗闈€係琛ㄨ揪寮忔槸Lisp鐨勮娉曞熀紜錛岃娉曟槸璇箟鐨勮澆浣擄紝褰㈠紡鏄疄璐ㄧ殑瀵勬墭銆?strong>鈥淪琛ㄨ揪寮忊濇槸紼嬪簭鐨勪竴縐嶅艦錛屾濡傗滀竷璦鈥濇槸璇楃殑涓縐嶅艦錛屸滃井鍗氣濇槸淇℃伅鐨勪竴縐嶅艦</strong>銆傛鏄艦鐨勪笉鍚岋紝璁╁井鍗氫笌鍗氬鏈変簡(jiǎn)璐ㄧ殑宸紓錛屽悓鏍風(fēng)殑閬撶悊錛屾鏄疭琛ㄨ揪寮忚Lisp涓嶤銆丣ava銆丼QL絳夎璦鏈変簡(jiǎn)澶╁¥涔嬪埆銆? <h5>Lisp涔嬮亾</h5> <p>涓闂ㄨ璦鑳藉惁鏈夋晥鍦拌〃杈劇紪紼嬭呯殑璁捐鎬濇兂鍙栧喅浜庡叾鎶借薄鏈哄埗鐨勮涔夎〃杈捐兘鍔涖傛牴鎹娊璞℃満鍒剁殑涓嶅悓錛岃璦鐨勬娊璞℃満鍒跺艦鎴愪簡(jiǎn)闈㈠悜榪囩▼銆侀潰鍚戝璞°佸嚱鏁板紡銆佸茍鍙戝紡絳変笉鍚岀殑鑼冨紡銆傚綋浣犻噰鐢ㄦ煇涓縐嶈璦錛屽熀鏈笂灝辮〃紺轟綘宸茬粡鈥滈潰鍚慩XX鈥滀簡(jiǎn)錛屼綘鐨勬濈淮鏂瑰紡鍜岃В鍐抽棶棰樼殑鎵嬫灝變細(xì)渚濊禆浜庤璦鎵鎻愪緵鐨勬娊璞℃柟寮忋傛瘮濡傦紝閲囩敤Java璇█閫氬父鎰忓懗鐫閲囩敤闈㈠悜瀵硅薄鍒嗘瀽璁捐錛涢噰鐢‥rlang閫氬父鎰忓懗鐫鎸堿ctor妯″瀷瀵瑰茍鍙戜換鍔¤繘琛屽緩妯°? <p>鏈夌粡楠岀殑紼嬪簭鍛橀兘鐭ラ亾錛屾棤璁烘槸闈㈠悜XXX緙栫▼錛岀▼搴忚璁¢兘鏈変竴鏉♀滄娊璞″師鍒欌滐細(xì)What涓嶩ow瑙h︺備絾鏄紝<strong>鏅氳璦鐨勯棶棰樺氨鍦ㄤ簬琛ㄨ揪W(wǎng)hat鐨勬墜孌甸潪甯告湁闄?/strong>錛屾棤闈炴槸榪囩▼銆佺被銆佹帴鍙c佸嚱鏁扮瓑鍑犵鏂瑰紡錛岃岃澶氶鍩熼棶棰樻槸鏃犳硶鐩存帴鎶借薄涓哄嚱鏁版垨鎺ュ彛鐨勩傛瘮濡傦紝浣犲畬鍏ㄥ彲浠ュ湪C璇█涓畾涔夎嫢騫插嚱鏁版潵鍋氬埌make file鎵鍋氱殑浜嬫儏錛屼絾C浠g爜寰堥毦鍍弇ake file閭f牱澹版槑寮忓湴浣撶幇鍑簍arget銆乨epends絳夎涔夛紝瀹冧滑鍙細(xì)浣滀負(fù)瀹炵幇緇嗚妭琚飯娌″湪涓涓釜鐨凜鍑芥暟涔嬩腑銆傞噰鐢∣OP鎴栨槸FP絳夊叾瀹冭寖寮忎篃浼?xì)閬囧埌鍚屾狅L(fēng)殑鍥伴毦錛屼篃灝辨槸璇磎ake file璇█鎵浠h〃鐨勬娊璞$淮搴︿笌闈㈠悜榪囩▼銆丱OP浠ュ強(qiáng)FP鐨勬娊璞$淮搴︽槸姝d氦鐨勶紝浣垮緱鍚勭鑼冨紡鏃犳硶鐩存帴琛ㄨ揪鍑簃ake file鐨勮涔夈傝繖灝辨槸鏅氳璦鐨勨滃垰鎬р濈壒寰侊紝瀹冭姹傛垜浠繀欏諱互璇█鐨勬娊璞$淮搴﹀幓鍒嗘瀽鍜岃В鍐抽棶棰橈紝鎶婇棶棰樻槧灝勫埌璇█鐨勫熀鏈娉曞拰璇箟銆? <p>鏇磋繘涓姝ワ紝濡傛灉浠旂粏鎺㈢┒榪欑鍒氭х殑鏍規(guī)簮錛屾垜浠細(xì)鍙戠幇姝f槸鐢變簬鏅氳璦<strong>璇硶鍜岃涔夌殑绱ц﹀悎</strong>閫犳垚浜?jiǎn)杩櫩U嶅垰鎬с傛瘮濡傦紝C璇█涓璸rintf(鈥渉ello %s鈥? name)絎﹀悎鍑芥暟璋冪敤璇硶錛屽畠琛ㄨ揪浜?jiǎn)鍑芥暟璋冪敤璇箟锛岄櫎姝や箣澶栧埆鏃犱粬涔夊Q汮ava涓璱nterface IRunnable { 鈥?}絎﹀悎鎺ュ彛瀹氫箟璇硶錛屽畠琛ㄨ揪浜?jiǎn)鎺ュ彛瀹氫箟璇箟锛岄櫎姝や箣澶栧埆鏃犱粬涔夈傚鏋滀綘璁や負(fù)鈥滆娉曞拰璇箟绱ц﹀悎鈥滄槸鐞嗘墍褰撶劧鐨勶紝鐪嬩笉鍑?guó)櫩欐湁浠涔堥棶棰橈紝閭d箞鐞嗚ВLisp灝變細(xì)璁╀綘瀵規(guī)浜х敓鏇存繁鐨勮璇嗐? <p>褰撲綘鐪嬪埌Lisp鐨?f a (b c))鐨勬椂鍊欙紝浣犱細(xì)鎯沖埌浠涔堬紵浼?xì)涓嶄細(xì)椹笂鑱旀儧_埌鍑芥暟姹傚兼垨鏄畯鎵╁睍錛熷氨鍍忓湪C璇█閲岀湅鍒癵cd(10, 15)椹笂鎯沖埌鍑芥暟璋冪敤錛屾垨鑰呭湪Java閲岀湅鍒癱lass A椹笂鎯沖埌綾誨畾涔変竴鏍楓傚鏋滅湡鏄繖鏍鳳紝閭e畠?yōu)鏄綘鐞嗚ВLisp鐨勪竴閬撻殰紕嶏紝鍥犱負(fù)浣犲凡緇忎範(fàn)鎯簡(jiǎn)欏虹潃璇█鍘繪濊冿紝鎬繪槸鍦ㄦ兂榪欎竴鍙ヨ瘽鏈哄櫒鎬庝箞瑙i噴鎵ц錛熼偅涓鍙ヨ瘽鍙堝搴旇璦鐨勫摢涓壒鎬э紵鐞嗚ВLisp瑕佸弽榪囨潵錛岃璇█欏虹潃浣狅紝Lisp鐨?f a (b c))鍙互鏄換浣曡涔夛紝瀹屽叏鐢變綘鏉ュ畾錛屽畠鍙互鏄嚱鏁板畾涔夈佺被瀹氫箟銆佹暟鎹簱鏌ヨ銆佹枃浠朵緷璧栧叧緋伙紝寮傛浠誨姟鐨勬墽琛屽叧緋伙紝涓氬姟瑙勫垯 鈥? <p>涓嬮潰鎴戝噯澶囧厛閫氳繃鍑犱釜鍏蜂綋鐨勪緥瀛愰愭灞曠ずLisp鐨勬湰璐ㄣ傞渶瑕佽鏄庣殑鏄紝鐢變簬Lisp鐨凷琛ㄨ揪寮忓拰XML鐨勮娉曞艦寮忛兘鏄竴縐嶆爲(wèi)褰㈢粨鏋勶紝鍦ㄨ涔夎〃杈炬柟闈簩鑰呭茍鏃犳湰璐ㄧ殑宸埆銆傛墍浠ワ紝涓轟簡(jiǎn)鐞嗚В鏂逛究錛屼笅闈㈡垜鏆備笖鐢ㄥ鏁頒漢鏇翠負(fù)鐔熸?zhèn)夌殑XML鏉ュ啓浠g爜錛岃璁頒綇鎴戜滑鍙互寰堣交鏄撳湴鎶奨ML浠g爜鍜孡isp浠g爜鐩鎬簰杞崲銆? <p>棣栧厛錛屾垜浠彲浠ヨ交鏄撳湴鐢╔ML鏉ュ畾涔変竴涓眰涓や釜鏁版渶澶у叕綰︽暟鐨勫嚱鏁幫細(xì)<pre> <func name='gcd' return_type='int'> <params> <a type='int'/> <b type='int'/> </params> <body> <if> <equals> <a/> <int>0</int> </equals> </if> <then> <return><b/></return> </then> <else> <return> <gcd> <modulo><b/><a/></modulo> <a/> </gcd> </return> </else> </body> </func> </pre> <p>鍏舵錛屾垜浠彲浠ョ敤瀹冩潵瀹氫箟綾伙細(xì)<pre> <class name="Computer"> <field access="private" type="MainBoard" name="main-board" /> <field access="private" type="CPU" name="cpu" /> <field access="private" type="Memory" name="memory" /> <method access="public" return_type="boolean" name="powerOn" /> <params>...</params> <body>...</body> </method> <method access="public" return_type="boolean" name="powerOff" /> <params>...</params> <body>...</body> </method> </class> </pre> <p>榪樺彲浠ヨ交鏄撳湴鐢ㄥ畠鏉ョ紪鍐欏叧緋繪煡璇細(xì)<pre><sql> <select> <column name="employees.id" /> <column name="bonus.amount" /> </select> <from> <table name="employees" /> <table name="bonus" /> </from> <where> <equals> <column name="employees.id" /> <column name="bonus.employee_id" /> </equals> </where> </sql> </pre> <p>榪樺彲浠ョ敤瀹冩潵瀹炵幇綾諱技make file鐨勮嚜鍔ㄥ寲鏋勫緩(璇硶鍙栬嚜ant)錛?pre> <project name="MyProject" default="dist" basedir="."> <property name="src" location="src"/> <property name="build" location="build"/> <property name="dist" location="dist"/> <target name="init"> <mkdir dir="${build}"/> </target> <target name="compile" depends="init" description="compile the source " > <javac srcdir="${src}" destdir="${build}"/> </target> <target name="dist" depends="compile" description="generate the distribution" > <mkdir dir="${dist}/lib"/> <jar jarfile="${dist}/lib/MyProject-${DSTAMP}.jar" basedir="${build}"/> </target> <target name="clean" description="clean up" > <delete dir="${build}"/> <delete dir="${dist}"/> </target> </project> </pre> <p>涓鍙f皵涓句簡(jiǎn)榪欎箞澶氫釜渚嬪瓙錛岀洰鐨勫湪浜庣敤XML榪欑鏍?wèi)迮灳l撴瀯鏉ヨ鏄嶭isp鐨凷琛ㄨ揪寮忔墍鑳藉鎻忚堪鐨勮涔夈備笉鐭ラ亾浣犳槸鍚﹀彂鐜頒簡(jiǎn)S琛ㄨ揪寮忓拰XML榪欑鏍?wèi)迮炶娉曞湪璇箟鏋勯犳柟闈㈡湁鐫鐗瑰埆鐨勨滄煍鎬р濓紵鎴戜滑鍙互杞繪槗鍦扮敤瀹冩瀯閫犲嚭鍑芥暟銆佸彉閲忋佹潯浠跺垽鏂涔夛紱綾匯佸睘鎬с佹柟娉曡涔夛紱鍙互杞繪槗鍦版瀯閫犲嚭鍏崇郴妯″瀷鐨剆elect銆亀here璇箟錛涘彲浠ヨ交鏄撳湴鏋勯犲嚭make鐨則arget銆乨epends璇箟錛岀瓑絳夋暟涓嶆竻鐨勮涔夈傚湪鏅氳璦閲岋紝浣犲彲浠ュ畾涔変竴涓嚱鏁般佷竴涓被錛屼絾浣犳棤娉曚負(fù)C璇█澧炲姞鍖垮悕鍑芥暟鐗規(guī)э紝涔熸病娉曠粰Java璇█鍔犱笂RAII璇箟錛岀敋鑷寵繛鑷繁鍒涢犱竴涓猣oreach寰幆閮戒笉琛岋紝鑰岃嚜瀹氫箟璇箟鎰忓懗鐫鍦↙isp涔嬩笂<strong>浣犲垱閫犱簡(jiǎn)涓闂ㄨ璦</strong>錛佷笉綆℃槸闈㈠悜榪囩▼錛岄潰鍚戝璞★紝鍑芥暟寮忥紝榪樻槸鍏崇郴妯″瀷錛屽湪Lisp閲岀粺緇熼兘鍙樻垚浜?jiǎn)涓縐岲SL錛岃孡isp鏈韓涔熷氨鎴愪簡(jiǎn)涓縐嶅畾涔夎璦鐨勮璦錛屽嵆鍏冭璦(Meta Language)銆? <p>Lisp鐨勬煍鎬т笌S琛ㄨ揪寮忔湁鐫瀵嗗垏鐨勫叧緋匯侺isp騫朵笉闄愬埗浣犵敤S琛ㄨ揪寮忔潵琛ㄨ揪浠涔堣涔夛紝鍚屾牱鐨凷琛ㄨ揪寮忚娉曞彲浠ヨ〃杈懼悇縐嶄笉鍚岄鍩熺殑璇箟錛岃繖灝辨槸<strong>璇硶鍜岃涔夎В鑰?/strong>銆傚鏋滆鏅氳璦鐨勫垰鎬ф簮浜庘滆娉曞拰璇箟绱ц﹀悎鈥濓紝閭d箞Lisp鐨勬煍鎬ф鏄簮浜庘滆娉曞拰璇箟瑙h︹濓紒鈥滆娉曞拰璇箟瑙h︹濅嬌寰桳isp鍙互闅忔剰鍦版瀯閫犲悇縐嶉鍩熺殑DSL錛岃屼笉寮哄埗鐢ㄦ煇涓縐嶈寖寮忔垨鏄鍩熻瑙掑幓鍒嗘瀽鍜岃В鍐抽棶棰樸傛湰璐ㄤ笂錛孡isp緙栫▼鏄竴縐嶈秴瓚婁簡(jiǎn)鏅氱紪紼嬭寖寮忕殑鑼冨紡錛岃繖灝辨槸<strong>Lisp涔嬮亾錛氶潰鍚戣璦緙栫▼(LOP, Language Oriented Programming)</strong>銆俉ikipedia涓婃槸榪欐牱鎻忚堪LOP鐨勶細(xì) <blockquote> <p>Language oriented programming (LOP) is a style of computer programming in which, rather than solving problems in general-purpose programming languages, the programmer creates one or more domain-specific languages for the problem first, and solves the problem in those languages 鈥?The concept of Language Oriented Programming takes the approach to capture requirements in the user鈥檚 terms, and then to try to create an implementation language as isomorphic as possible to the user鈥檚 descriptions, so that the mapping between requirements and implementation is as direct as possible.</p></blockquote> <p>LOP鑼冨紡鐨勫熀鏈濇兂鏄粠闂鍑哄彂錛屽厛鍒涘緩涓闂ㄦ弿榪伴鍩熸ā鍨嬬殑DSL錛屽啀鐢―SL鍘昏В鍐抽棶棰橈紝瀹冨叿鏈夐珮搴︾殑澹版槑鎬у拰鎶借薄鎬с係QL銆乵ake file銆丆SS絳塂SL閮藉彲浠ヨ璁や負(fù)鏄疞OP鐨勫叿浣撳疄渚嬶紝涓嬮潰鎴戜滑鍐嶉氳繃涓や釜甯歌鐨勪緥瀛愭潵鐞嗚ВLOP鐨勪紭鍔褲? <p>渚?錛氬湪鑲$エ浜ゆ槗緋葷粺涓紝浜ゆ槗鍗忚瀹氫箟鑻ュ共浜岃繘鍒剁殑娑堟伅鏍煎紡錛屼氦鏄撴墍鍜屽鎴風(fēng)闇瑕佸娑堟伅榪涜緙栫爜鍜岃В鐮併? <p>娑堟伅鏍煎紡鏄竴縐嶆娊璞$殑瑙勮寖錛屾湰韜笉瀵硅璦鍋氫換浣曠殑闄愬埗錛屼綘鍙互鐢–錛孋++錛孞ava錛屾垨鑰匬ython銆傛櫘閫氱殑瀹炵幇鏂瑰紡鏄寜鐓ф秷鎭牸寮忚鑼冿紝鍦ㄧ浉搴旂殑璇█涓畾涔夋秷鎭粨鏋勶紝騫剁紪鍐欑浉搴旂殑緙栬В鐮佸嚱鏁般傚亣璁句負(fù)涓涓秷鎭畾涔夌粨鏋勫拰瀹炵幇緙栬В鐮佸嚱鏁扮殑宸ヤ綔閲忎負(fù)M錛屼笉鍚屾秷鎭被鍨嬬殑鏁伴噺涓篘錛岃繖縐嶆柟寮忕殑宸ヤ綔閲忓ぇ鑷翠負(fù)M*N銆備篃灝辨槸璇存瘡澧炲姞涓縐嶆秷鎭被鍨嬶紝灝遍渶瑕佷負(fù)璇ユ秷鎭畾涔夌粨鏋勶紝瀹炵幇緙栬В鐮佸嚱鏁幫紝寮曞叆bug鐨勫彲鑳芥у綋鐒朵篃鍜孧*N鎴愭姣斻傚鏋滀粩緇嗚瀵熶笉闅懼彂鐜幫紝鍚勪釜娑堟伅緇撴瀯鍏跺疄鏄珮搴︾被浼肩殑錛岀紪瑙g爜鍑芥暟涔熷ぇ鍚屽皬寮傦紝浣嗘槸鏅氳璦鍗存壘涓嶅埌涓縐嶆娊璞℃満鍒惰兘琛ㄨ揪榪欑鍏辨э紝姣斿錛屾垜浠棤娉曢氳繃闈㈠悜瀵硅薄鐨勬柟娉曞畾涔変竴涓熀綾繪妸娑堟伅緇撴瀯鐨勫叡鎬ф娊璞″嚭鏉ワ紝鐒跺悗璁╁叿浣撶殑娑堟伅鍘葷戶(hù)鎵垮畠錛岃揪鍒板鐢ㄧ殑鐩殑銆傝繖姝f槸鐢變簬鏅氳璦鐨勬娊璞$淮搴﹂檺鍒舵墍鑷達(dá)紝鍦ㄦ櫘閫氳璦涓紝浣犲彧鑳戒粠鍑芥暟銆佹帴鍙g瓑緇村害瀵逛簨鐗╄繘琛屾娊璞★紝鑰屾伆濂芥秷鎭牸寮忓叡鎬ф墍鍦ㄧ殑緇村害涓庤繖浜涙娊璞$淮搴﹀茍涓嶅尮閰嶃? <p>鍏跺疄錛屼笉鍚屾秷鎭被鍨嬬殑<strong>鍏辨у湪浜庡畠浠兘鍏鋒湁鐩稿悓鐨勯鍩熻涔?/strong>錛屾瘮濡傦細(xì)鈥滄煇瀛楁鍐呭鏄彟涓涓瓧孌靛唴瀹圭殑md5鐮佲濆氨鏄竴縐嶆秷鎭牸寮忕殑棰嗗煙璇箟錛岃繖縐嶉鍩熻涔夋槸OOP鐨勬娊璞℃満鍒舵棤娉曟弿榪扮殑銆侺OP鐨勬濊礬鏄厛鍒涘緩涓闂ㄦ秷鎭畾涔塂SL錛屾瘮濡傦紝綾諱技Google鐨凱rotocol Buffer錛孉ndroid鐨凙IDL銆傜劧鍚庯紝閫氳繃DSL緙栧啓娑堟伅瀹氫箟鏂囦歡錛岀洿鎺ュ0鏄庡紡鍦版弿榪版秷鎭殑緇撴瀯鐗瑰緛錛屾瘮濡傦紝鎴戜滑鍙互澹版槑寮忓湴鎻忚堪鈥滄煇瀛楁鍐呭鏄彟涓涓瓧孌靛唴瀹圭殑md5鐮佲濄傛垜浠繕闇瑕佷負(fù)DSL寮鍙戠紪璇戝櫒鐢ㄤ簬鐢熸垚C銆丣ava絳夐氱敤璇█鐨勬秷鎭畾涔夊拰緙栬В鐮佸嚱鏁般? <p>鏈変簡(jiǎn)娑堟伅瀹氫箟DSL鍜岀紪璇戝櫒涔嬪悗錛岀敱浜嶥SL緙栧啓娑堟伅瀹氫箟鏄竴縐嶉珮搴﹀0鏄庡紡鐨勭紪紼嬫柟娉曪紝姣忓鍔犱竴縐嶆秷鎭殑鍙渶瑕佸緙栧啓涓涓秷鎭畾涔夋枃浠惰屽凡錛屽伐浣滈噺鍑犱箮鍙互蹇界暐涓嶈銆傛墍鏈夌殑宸ヤ綔閲忛兘闆嗕腑鍦ㄧ紪璇戝櫒鐨勫紑鍙戜笂錛屽伐浣滈噺鏄竴涓父鏁癈錛屼笌娑堟伅鐨勬暟閲忔病鏈夊叧緋伙紱璐ㄩ噺淇濊瘉鏂歸潰涔熷彧闇瑕佸叧娉ㄧ紪璇戝櫒榪欎竴鐐癸紝涓嶄細(xì)鍥犱負(fù)澧炲姞鏂扮殑娑堟伅綾誨瀷鑰屽紩鍏ug銆? <p>渚?錛氬湪鍥句功綆$悊緋葷粺涓紝闇瑕佹敮鎸佸湪綆$悊鐣岄潰涓婂涔︾睄銆佸鐢熴佺彮綰х瓑鍚勭瀹炰綋榪涜綆$悊鎿嶄綔銆? <p>濡傛灉鎸変紶緇熺殑涓夊眰鏋舵瀯錛屼竴鑸渶瑕佸湪鍚庣紼嬪簭涓負(fù)姣忎竴縐嶅疄浣撳畾涔変竴涓被錛屽茍瀹氫箟鐩稿簲鐨勬柟娉曞疄鐜癈RUD鎿嶄綔錛屼笌涔嬬浉搴旂殑錛岃繕闇瑕佸湪鍓嶇欏甸潰涓負(fù)姣忎竴涓疄浣撶紪鍐欑浉搴旂殑綆$悊欏甸潰銆傝繖浜涘疄浣撶被鐨凜RUD鎿嶄綔閮芥槸澶у悓灝忓紓鐨勶紝浣嗙粏鑺傚張鍚勪笉鐩稿悓錛岃櫧鐒舵垜浠緢鎯沖鐢ㄦ煇浜涘叡鍚岀殑璁捐瀹炵幇錛屼絾OOP鎵鎻愪緵鐨勫皝瑁呫佺戶(hù)鎵褲佸鎬佺瓑鎶借薄鏈哄埗涓嶈凍浠ユ湁鏁堟崟鑾峰疄浣撲箣闂寸殑鍏辨э紝澶ч噺鐨勪唬鐮佽繕鏄繀欏繪斁鍦ㄥ瓙綾諱腑鏉ュ畬鎴愩傛瘮濡傦紝Student鍜孊ook瀹炰綋綾葷殑瀹炵幇闈炲父鐩鎬技錛屼絾鏄鏋滆閫氳繃OOP鐨勬柟寮忓幓鎶借薄瀹冧滑鐨勫叡鎬э紝寰楀嚭鐨勭粨鏋滃鍗婃槸Entity榪欐牱鐨勫ぇ鑰岀┖鐨勫熀綾伙紝寰堥毦璧峰埌澶嶇敤鐨勬晥鏋溿? <p>鍏跺疄錛屼笉鍚屽疄浣撲箣闂寸殑鍏辨ц繕鏄湪浜庡畠浠叿鏈夌浉鍚岀殑棰嗗煙璇箟錛屾瘮濡傦細(xì)瀹炰綋鍏鋒湁灞炴э紝灞炴у叿鏈夌被鍨嬶紝灞炴у叿鏈夊彇鍊艱寖鍥達(dá)紝灞炴у叿鏈夊彲璇誨彇銆佸彲緙栬緫絳夎闂睘鎬э紝瀹炰綋涔嬮棿鏈夊叧鑱斿叧緋葷瓑銆侺OP鏂規(guī)硶姝f槸鐩存帴闈㈠悜榪欑棰嗗煙璇箟鐨勩傞噰鐢↙OP鏂規(guī)硶錛屾垜浠茍涓嶉渶瑕佷負(fù)姣忎竴涓疄浣撶被鍗曠嫭緙栧啓C(jī)RUD鏂規(guī)硶錛屼篃涓嶉渶瑕佸崟鐙紪鍐欑鐞嗛〉闈紝鍙渶瑕佸畾涔変竴縐岲SL騫跺疄鐜板叾緙栬瘧鍣紱鐒跺悗錛岀敤DSL澹版槑寮忓湴緙栧啓瀹炰綋鎻忚堪鏂囦歡錛屽幓鎻忚堪瀹炰綋鐨勫睘鎬у垪琛紝灞炴х殑綾誨瀷銆佸彇鍊艱寖鍥達(dá)紝灞炴ф墍鏀寔鐨勬搷浣滐紝灞炴т箣闂寸殑鍏崇郴鍜岀害鏉熸潯浠剁瓑錛涙渶鍚庯紝閫氳繃榪欎釜瀹炰綋鎻忚堪鏂囦歡鑷姩鐢熸垚鍚庣鐨勫疄浣撶被鍜屽墠绔鐞嗛〉闈€傞噰鐢↙OP錛屼笉璁哄墠鍚庣閲囩敤浣曠鎶鏈紝Java涔熷ソ錛孋#涔熷ソ錛孞SP涔熷ソ錛孉SP.NET涔熷ソ錛岄兘鍙互鑷姩鐢熸垚瀹冧滑鐨勪唬鐮併傞噰鐢↙OP鐨勫伐浣滈噺鍜岃川閲忛兘闆嗕腑鍦―SL鐨勮璁″拰緙栬瘧鍣ㄧ殑寮鍙戯紝涓庡疄浣撶殑鏁伴噺鏃犲叧錛屼篃灝辨槸璇達(dá)紝瓚婃槸搴炲ぇ鐨勭郴緇燂紝瀹炰綋綾昏秺澶氳秺鏄兘浣撶幇LOP鐨勪紭鍔褲? <p>閫氳繃涓婇潰涓や釜灝忎緥瀛愭垜浠彲浠ユ劅鍙楀埌錛孡OP鏄竴縐嶉潰鍚戦鍩熺殑錛岄珮搴﹀0鏄庡紡鐨勭紪紼嬫柟寮忥紝瀹冪殑鎶借薄緇村害涓庨鍩熸ā鍨嬬殑緇村害瀹屽叏涓鑷淬侺OP鑳借紼嬪簭鍛樹(shù)粠澶嶆潅鐨勫疄鐜扮粏鑺備腑瑙h劚鍑烘潵錛屾妸鍏蟲(chóng)敞鐐歸泦涓湪闂鐨勬湰璐ㄤ笂錛屼粠鑰屾彁楂樼紪紼嬬殑鏁堢巼鍜岃川閲忋? <p>鎺ヤ笅鏉ョ殑闂鏄鏋滈渶瑕佷負(fù)鏌愰鍩熻璁SL錛屾垜浠槸搴旇鍙戞槑涓闂ㄧ被浼糞QL榪欐牱鐨勪笓鐢―SL鍛紝榪樻槸鐢╔ML鎴朣琛ㄨ揪寮忓幓瀹氫箟DSL鍛紵瀹冧滑鍚勬湁浣曚紭緙虹偣鍛紵 <p>鎴戣涓洪噰鐢╔ML鎴朣琛ㄨ揪寮忓畾涔塂SL鐨勪紭鐐逛富瑕佹湁錛?) SQL銆乵ake file銆丆SS絳変笓鐢―SL閮藉彧鑳介潰鍚戝悇鑷殑棰嗗煙錛岃屼竴涓疄闄呯殑棰嗗煙闂閫氬父鏄法瓚婂涓鍩熺殑錛屾湁鏃舵垜浠渶瑕佸皢涓嶅悓棰嗗煙铻嶅悎鍦ㄤ竴璧鳳紝浣嗘槸鐢變簬鏅氳璦鐨勫垰鎬э紝澶氳璦铻嶅悎閫氬父浼?xì)鏄竴浠墮潪甯稿洶闅劇殑浜嬫儏錛岃孹ML鍜孲琛ㄨ揪寮忚娉曠粨鏋勭殑鍗曚竴鎬у拰鈥滀唬鐮佸強(qiáng)鏁版嵁鈥濈殑鐗圭偣浣垮緱璺ㄩ鍩熻瀺鍚堟鏃犻殰紕嶃?) 鍦ㄤ負(fù)DSL寮鍙戠紪璇戝櫒鎴栬В閲婂櫒鐨勬柟闈紝浜岃呴毦搴︿笉鍚屻傚XML鍜孲琛ㄨ揪寮忓畾涔夌殑DSL榪涜璇硶鍒嗘瀽闈炲父綆鍗曪紝鐩告瘮涔嬩笅錛屽SQL榪欐牱鐨勪笓鐢―SL榪涜璇硶鍒嗘瀽錛岃櫧鐒跺彲浠ュ熷姪Lex銆乊acc銆丄NTLR絳変唬鐮佺敓鎴愬伐鍏鳳紝浣嗘葷殑鏉ヨ澶嶆潅搴﹁繕鏄鏄庢樉楂樹(shù)竴浜涖? <p>褰撶劧錛孹ML鍜孲琛ㄨ揪寮忕殑浼樼偣涔熸濂芥槸鍏剁己鐐癸紝鐢變簬XML鍜孲琛ㄨ揪寮忕殑璇硶褰㈠紡鏄浐瀹氱殑錛屼笉鑳藉儚涓撶敤DSL閭f牱鑷敱鍦拌璁¤娉曘傛墍浠ワ紝涓鑸潵璁蹭笓鐢―SL鐨勮娉曟樉寰楁洿鍔犵畝媧併傛崲鍙ヨ瘽璇達(dá)紝XML鍜孡isp鍏跺疄鏄湪璇硶鍜岃涔夐棿鍋氫簡(jiǎn)涓涓氦鎹紝鐢ㄨ娉曠殑闄愬埗鎹㈡潵浜?jiǎn)璇箟鐨勭亯|椿銆? <h5>Lisp涔嬪櫒</h5> <p>鎺ヤ笅鏉ユ垜浠戶(hù)緇帰璁―SL鐨勮В閲婃墽琛岄棶棰樸侱SL浠g爜鐨勮В閲婃墽琛屼竴鑸垎涓?縐嶅吀鍨嬬殑鏂瑰紡錛?) 閫氳繃涓撻棬鐨勮В閲婂櫒瑙i噴鎵ц錛?) 緙栬瘧鐢熸垚鍏朵粬璇█鐨勪唬鐮侊紝鍐嶉氳繃鍏朵粬璇█鐨勮В閲婂櫒瑙i噴鎵ц(鎴栫紪璇戣繍琛?錛?) 鑷В閲娿傛瘮濡傦紝絎?綾葷殑浠h〃鏄疭QL錛屼笂涓鑺備婦鐨勪袱涓緥瀛愰兘灞炰簬絎?綾伙紝鑰岀3綾昏嚜瑙i噴姝f槸Lisp鐨勭壒鑹層? <p>涓轟簡(jiǎn)鐞嗚В鑷В閲婏紝鎴戜滑鍙互鍏堜粠鍐呴儴DSL鐨勮В閲婃墽琛岃璧楓傚唴閮―SL鏄寚宓屽叆鍦ㄥ涓昏璦涓殑DSL錛屾瘮濡傦紝Google Test鍗曞厓嫻嬭瘯妗嗘灦瀹氫箟浜?jiǎn)涓濂楀熀浜庢祦鐣呮帴鍙?Fluent Interface)鐨凜++鍗曞厓嫻嬭瘯DSL銆備粠璇箟鏋勯犵殑瑙掑害鐪嬶紝鍐呴儴DSL鐩存帴鍊熺敤瀹夸富璇█鐨勮娉曞畾涔変簡(jiǎn)鑷繁鐨勯鍩熻涔夛紝鏄竴縐嶈娉曞拰璇箟瑙h︼紱浠庤В閲婃墽琛岀殑瑙掑害鐪嬶紝鍐呴儴DSL鏄殢瀹夸富璇█鐨勮В閲婂櫒鑰岃嚜鍔ㄨВ閲婄殑錛屼笉闇瑕佸儚澶栭儴DSL涓鏍峰紑鍙戜笓闂ㄧ殑瑙i噴鍣紝鍥犺屽疄鐜扮殑浠d環(huán)寰堜綆銆傚綋鐒?dòng)灱岒q朵笉鏄璁捐鍐呴儴DSL涓嶇敤鍏沖績(jī)浠諱綍鐨勮В閲婂疄鐜幫紝瀹為檯涓婏紝榪樻槸闇瑕佺啛鎮(zhèn)夊涓昏璦鐨勭壒鎬э紝騫跺埄鐢ㄨ鐗規(guī)т嬌寰桪SL鑳介殢鐫瀹夸富璇█鐨勮В閲婂櫒寰楀埌瑙i噴鎵ц銆? <p>Lisp鎷ユ湁寮哄ぇ鐨勮嚜瑙i噴鐗規(guī)э紝榪欏緱鐩婁簬鐙竴鏃犱簩鐨?strong>Lisp涔嬪櫒錛氬畯 (macro)</strong>銆傚畯浣垮緱Lisp緙栧啓鐨凞SL鍙互琚獿isp瑙i噴鍣ㄧ洿鎺ヨВ閲婃墽琛岋紝榪欏湪鍘熺悊涓婁笌鍐呴儴DSL鏄浉閫氱殑錛屽彧鏄唴閮―SL涓鑸槸鍒╃敤瀹夸富璇█鐨勯摼寮忚皟鐢ㄧ瓑鐗規(guī)э紝閫氬父褰㈠紡綆闄嬶紝鍔熻兘鏈夐檺錛岃孡isp鐨勫畯鍒欒寮哄ぇ鍜岀伒媧誨緱澶氥? <p>C璇█涓篃鏈夊畯鐨勬蹇碉紝涓嶈繃Lisp鐨勫畯涓嶤璇█鐨勫畯瀹屽叏涓嶅悓錛孋璇█鐨勫畯鏄畝鍗曠殑瀛楃涓叉浛鎹€傛瘮濡傦紝涓嬮潰鐨勫畯瀹氫箟錛?pre>#define square(x) (x*x) </pre> <p>square(1+1)鐨勬湡鏈涚粨鏋滄槸4錛岃屽疄闄呬笂瀹冧細(xì)琚浛鎹㈡垚(1+1*1+1)錛岀粨鏋滄槸3銆傝繖涓緥瀛愯鏄庯紝C璇█鐨勫畯鍙湪棰勭紪璇戦樁孌佃繘琛岀畝鍗曠殑瀛楃涓叉浛鎹紝瀵圭▼搴忚娉曠粨鏋勭己涔忕悊瑙o紝闈炲父鑴嗗急銆侺isp鐨勫畯涓嶆槸綆鍗曠殑瀛楃涓叉浛鎹紝鑰屾槸涓濂楀畬鏁寸殑浠g爜鐢熸垚緋葷粺錛屽畠鏄湪璇硶瑙f瀽鐨勫熀紜涓婃妸Lisp浠g爜浠庝竴縐嶅艦寮忚漿鎹負(fù)鍙︿竴縐嶅艦寮忥紝鏈川涓婅搗鍒頒簡(jiǎn)鏅氳璦緙栬瘧鍣ㄧ殑浣滅敤銆備笉鍚岀殑鏄紝鏅氱紪璇戝櫒鏄妸涓縐嶈璦鐨勪唬鐮佽漿鎹負(fù)鍙︿竴縐嶈璦鐨勪唬鐮侊紝姣斿錛孞ava緙栬瘧鍣ㄦ妸Java浠g爜杞崲鎴怞ava瀛楄妭鐮侊紱鑰孡isp瀹忕殑杈撳叆鍜岃緭鍑洪兘鏄疭琛ㄨ揪寮忥紝瀹冩湰璐ㄤ笂鏄妸涓縐岲SL杞崲涓哄彟涓縐岲SL銆備笅闈㈢殑渚嬪瓙鏄畯鐨勪竴涓吀鍨嬬敤娉曘? <p>渚?錛氬亣璁綥isp瑙i噴鍣ㄥ凡緇忓叿澶囪В閲婃墽琛岄潰鍚戣繃紼婦SL鐨勮兘鍔涳紝闇瑕佸疄鐜扮被浼糰nt鐨勮嚜鍔ㄥ寲鏋勫緩宸ュ叿銆? <p>鎴戜滑鍙互鍩轟簬瀹忔瀯寤轟竴闂ㄧ被ant鐨凞SL錛屽畯鐨勪綔鐢ㄦ槸鎶婄被ant DSL閫氳繃瀹忓睍寮鍙樻垚闈㈠悜榪囩▼鐨凞SL錛屾渶鍚庤Lisp瑙i噴鍣ㄦ墍瑙i噴鎵ц銆傝繖鏍風(fēng)敤Lisp緙栧啓鐨刟nt DSL灝變笉闇瑕佽緙栬瘧涓哄叾浠栬璦錛屼篃涓嶉渶瑕佸儚XML鐨刟nt涓鏍蜂緷璧栦簬涓撻棬鐨勮В閲婂櫒浜?jiǎn)銆? <p>褰撶劧錛屽拰寮鍙戜笓闂ㄧ殑瑙i噴鍣?緙栬瘧鍣ㄧ浉姣旓紝Lisp鐨勫畯涔熷茍闈炴病鏈夌己鐐癸紝瀹忛毦浠ョ悊瑙o紝寮鍙戝拰璋冭瘯鏇村姞鍥伴毦銆傚埌搴曟槸寮鍙戜笓闂ㄧ殑瑙i噴鍣?緙栬瘧鍣ㄨ繕鏄洿鎺ラ噰鐢ㄥ畯搴旇瑙嗗叿浣撴儏鍐佃屽畾銆? <h5>鎬葷粨</h5> <p>Lisp閲囩敤鍗曚竴鐨凷琛ㄨ揪寮忚娉曡〃杈句笉鍚岀殑璇箟錛屽疄鐜頒簡(jiǎn)璇硶鍜岃涔夎В鑰︺傝繖浣垮緱Lisp鍏鋒湁寮哄ぇ鐨勮涔夋瀯閫犺兘鍔涳紝鎿呴暱浜庢瀯閫燚SL瀹炵幇闈㈠悜璇█緙栫▼錛岃屽畯浣垮緱Lisp鍏鋒湁鑷В閲婅兘鍔涳紝璁╀笉鍚孌SL涔嬮棿鐨勮漿鎹㈡父鍒冩湁浣欍傝繘鍏isp鐨勪笘鐣屽簲褰撲粠鐞嗚В闈㈠悜璇█緙栫▼鍏ラ棬錛岃繖鏄疞isp涔嬮亾錛岃屽嚱鏁板紡緙栫▼鍜屽畯鐨嗕負(fù)Lisp涔嬪櫒錛屼互閬撻┉鍣ㄦ柟涓烘閫斻? <h5>鍚庤</h5> <p>鏈枃鏄垜瀛︿範(fàn)Lisp鐨勪竴涓葷粨錛屼篃鏄啓緇欐湁鍏磋叮瀛︿範(fàn)Lisp鐨勭▼搴忓憳鐨勫叆闂ㄨ祫鏂欍傚繀欏昏鏄庯紝鎴戣繕鏄竴涓爣鍑嗙殑Lisp鍒濆鑰咃紝鍑犱箮娌℃湁鍐欒繃鍍忔牱鐨凩isp紼嬪簭錛屾枃涓殑閿欒鍜屼笉瓚沖湪鎵闅懼厤錛屽笇鏈涜鑰呮壒璇勬寚姝o紝鎰熻阿錛? <h5>鍙傝?/h5> <p><a >The Roots of Lisp</a> <p><a >The Nature of Lisp</a> <p><a >Why Lisp macros are cool, a Perl perspective</a> <p><a >Wikipedia: Language-oriented programming</a> <p><a >銆婂疄鐢–ommon Lisp緙栫▼銆?/a> <p><a >銆婂啋鍙瘋鍫?鈥?緙栫▼鑼冨紡涓嶰OP鎬濇兂銆?/a></p><img src ="http://www.shnenglu.com/sunicdavy/aggbug/178505.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/sunicdavy/" target="_blank">鎴橀瓊灝忕瓚</a> 2012-06-12 12:38 <a href="http://www.shnenglu.com/sunicdavy/archive/2012/06/12/178505.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>Windows涓婽ortoiseHg鍚堝茍浠g爜瀵艱嚧FlashDevelop鎵撳紑涔辯爜鐨勫鐞嗘柟娉?/title><link>http://www.shnenglu.com/sunicdavy/archive/2012/05/12/174629.html</link><dc:creator>鎴橀瓊灝忕瓚</dc:creator><author>鎴橀瓊灝忕瓚</author><pubDate>Sat, 12 May 2012 02:17:00 GMT</pubDate><guid>http://www.shnenglu.com/sunicdavy/archive/2012/05/12/174629.html</guid><wfw:comment>http://www.shnenglu.com/sunicdavy/comments/174629.html</wfw:comment><comments>http://www.shnenglu.com/sunicdavy/archive/2012/05/12/174629.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/sunicdavy/comments/commentRss/174629.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/sunicdavy/services/trackbacks/174629.html</trackback:ping><description><![CDATA[<p>鏈榪戝洟闃熷凡緇忓叏闈㈠純鐢⊿VN鍏ㄩ潰杞Щ鍒癏G(Mercurial)鍒嗗竷寮忎唬鐮佺鐞?/p> <p>Visual Studio緋葷紪杈戝伐鍏風(fēng)敱浜庤川閲忚繃紜? 鍏煎鎬ц秴寮?鍥犳浣跨敤HG涓鐩存病鏈夊嚭鐜拌繃闂</p> <p>浣嗘槸絎笁鏂瑰紑鍙戠殑FlashDevelop瀵筓NICODE鍏煎鎬т笉濂? 鍑虹幇浜?jiǎn)寰堝湄曠爜闂? 鐗瑰埆鏄湪HG鍚堝茍浠g爜鍚? 浠g爜涓殑涓枃鍦‵lashDevelop涓殑涔辯爜鐜拌薄鏇存槸涓ラ噸. 緇忚繃楠岃瘉, 鍚屾牱浠g爜鍦‵lashBuilder涓病鏈夐棶棰? 鍥犳鍙互鎺ㄦ柇鏄疐lashDevelop鍏煎鎬ч棶棰?/p> <p>涓鴻В鍐蟲(chóng)闂, 闇瑕佽皟鏁碒G鐨勯厤緗? 榪欓噷浠indows鐜涓嬬殑TortoiseHg涓轟緥</p> <p>瑙e喅鏂規(guī)濡備笅:</p> <p>kdiff3鏄疶ortoiseHg鐨勯粯璁ゅ悎騫跺伐鍏? 榛樿瀹夎璺緞鍦╟:\Program Files\TortoiseHg\kdiff3.exe, 鎵懼埌騫惰繍琛?/p> <p>鍦ㄨ彍鍗曚腑鎵懼埌Settings->Configure KDiff3...</p> <p>鍦≧egional Settings閫夐」鍗′腑閫夋嫨Unicode, 8 bit(UTF-8) 鐒跺悗鍙栨秷鍕鵑夊彸杈圭殑Auto Detect Unicode</p> <p><a href="http://www.shnenglu.com/images/cppblog_com/sunicdavy/Windows-Live-Writer/FlashDevelopHG_8E7A/image_2.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.shnenglu.com/images/cppblog_com/sunicdavy/Windows-Live-Writer/FlashDevelopHG_8E7A/image_thumb.png" width="625" height="273"></a></p> <p>娉ㄦ剰, 濡傛灉闇瑕佹販鍚堝紑鍙慤TF8淇濆瓨鐨勬簮鐮佸拰UNICODE淇濆瓨鐨勬簮鐮? 闇瑕佸噯澶囦袱濂楀悎騫舵柟妗? 鍙互閫夋嫨鍏煎鎬ф瘮杈冨ソ鐨凚eyondCompare</p><img src ="http://www.shnenglu.com/sunicdavy/aggbug/174629.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/sunicdavy/" target="_blank">鎴橀瓊灝忕瓚</a> 2012-05-12 10:17 <a href="http://www.shnenglu.com/sunicdavy/archive/2012/05/12/174629.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鍩轟簬HG鐗堟湰綆$悊杞歡鐨勬湇鍔″櫒/瀹㈡埛绔暟鎹増鏈彂甯冩祦紼?/title><link>http://www.shnenglu.com/sunicdavy/archive/2012/04/26/172798.html</link><dc:creator>鎴橀瓊灝忕瓚</dc:creator><author>鎴橀瓊灝忕瓚</author><pubDate>Thu, 26 Apr 2012 03:11:00 GMT</pubDate><guid>http://www.shnenglu.com/sunicdavy/archive/2012/04/26/172798.html</guid><wfw:comment>http://www.shnenglu.com/sunicdavy/comments/172798.html</wfw:comment><comments>http://www.shnenglu.com/sunicdavy/archive/2012/04/26/172798.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/sunicdavy/comments/commentRss/172798.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/sunicdavy/services/trackbacks/172798.html</trackback:ping><description><![CDATA[<h1><font face="Lucida Console">浼犵粺鍙戝竷鐜扮姸</font></h1> <p><font face="Lucida Console">浼犵粺鐨勬湇鍔″櫒/瀹㈡埛绔増鏈彂甯冩祦紼嬮兘闇瑕佺粡鍘嗕互涓嬫祦紼?</font></p> <p><font face="Lucida Console">1. 鑾峰彇浠g爜</font></p> <p><font face="Lucida Console">2. 緙栬瘧浠g爜</font></p> <p><font face="Lucida Console">3. 灝嗛厤緗?浜岃繘鍒舵枃浠? 璧勬簮鎵撳寘</font></p> <p><font face="Lucida Console">4. 鎸傛帴榪滅▼鏈嶅姟鍣ㄧ鐩樻嫹璐濇墦鍖呮枃浠?/font></p> <p><font face="Lucida Console">5. 榪滅▼鎿嶄綔瑙e帇鎵撳寘鏂囦歡</font></p> <p><font face="Lucida Console">6. 淇敼璁劇疆,鎸囧悜鏈鏂扮増鏈?/font></p> <p><font face="Lucida Console">7. 閲嶅惎鏈嶅姟鍣?/font></p> <p><font face="Lucida Console">姝ゆ祦紼嬬箒鐞?閲嶅涓旀棤鑱? 鍚屾椂, 鐢變簬緗戠粶甯﹀,緗戦熺瓑綰︽潫, 姣忔鑻ヤ嬌鐢ㄥ畬鏁村寘鍙戝竷,浼犺緭璧鋒潵闈炲父鍚冨姏</font></p> <p><font face="Lucida Console">鏈枃璁ㄨ鐨勫緗戞湇鍔″櫒鐢變簬瀹夊叏鎬ц姹?紱佹root鐧誨綍,鍙兘鐢ㄦ櫘閫氬笎鍙風(fēng)櫥褰曟垨浼犺緭鍚? 鎻愭潈涓簉oot緇х畫(huà)榪涜浠ヤ笂鎿嶄綔, 鍥犳rsync鐨勪嬌鐢ㄥ彈鍒頒弗閲嶉檺鍒?/font></p> <p><font face="Lucida Console">鍗充究浣跨敤Windows涓嬬殑鍚屾杞歡, 涔熷嚑涔庝笉鍙兘.</font></p> <h1><font face="Lucida Console">HG鐗規(guī)у強(qiáng)浼樺娍</font></h1> <p><font face="Lucida Console">HG浣滀負(fù)涓涓紭縐,灝忓閥鐨勮法騫沖彴浠g爜綆$悊杞歡鐨勭壒鎬?姝eソ鑳借В鍐充互涓婇棶棰? 涓昏鐗規(guī)?</font></p> <p><font face="Lucida Console">1. 瀹夎綆渚? 鍙互浣跨敤浠g爜鐩存帴瀹夎</font></p> <p><font face="Lucida Console">2. 鍒╃敤鏈湴鏄犲皠鐗堟湰鍙互瀵規(guī)柊鐗堟湰鍋氬樊寮傛瘮杈?/font></p> <p><font face="Lucida Console">3. 澧為噺鍖呬紶杈? 100%鍚屾, 鏈湴鏂囦歡鍒犻櫎鍚? 榪滅▼鏂囦歡涔熶細(xì)鍚屾鍒犻櫎</font></p> <p><font face="Lucida Console">4. 浼犺緭鍘嬬緝</font></p> <p><font face="Lucida Console">5. 澧為噺鍖呭彲浠ユ墦鍖呬負(fù)patch榪涜紱葷嚎鏇存柊</font></p> <p><font face="Lucida Console">6. 鍙互鎭㈠鍒頒換鎰忕増鏈? 鎻愪氦鐗堟湰鏈夋嵁鍙煡</font></p> <p><font face="Lucida Console"></font> </p> <p><strong><font face="Lucida Console">浠ヤ笅閮ㄧ講緋葷粺浠entOS涓哄熀紜, 鍏朵粬緋葷粺綾諱技</font></strong></p> <p><strong><font face="Lucida Console">鏈枃鏉ヨ嚜鎴橀瓊灝忕瓚鐨勫崥瀹?a href="http://www.shnenglu.com/sunicdavy">http://www.shnenglu.com/sunicdavy</a> 杞澆璇鋒敞鏄庢潵婧?/font></strong></p> <h1><font face="Lucida Console">涓鴻繙紼嬫湇鍔″櫒瀹夎HG </font></h1> <h2><font face="Lucida Console">瀹夎渚濊禆搴?/font></h2> <p><font face="Lucida Console">yum install python-devel</font> </p> <h2><font face="Lucida Console">鑾峰彇HG婧愮爜</font></h2> <p><font face="Lucida Console">wget </font><a ><font face="Lucida Console">http://mercurial.selenic.com/release/mercurial-2.1.tar.gz</font></a> </p> <p><font face="Lucida Console">tar zxvf ./mercurial-2.1.tar.gz</font> </p> <h2><font face="Lucida Console">緙栬瘧瀹夎</font></h2> <p><font face="Lucida Console">make all</font> </p> <p><font face="Lucida Console">make install</font> </p> <p><font face="Lucida Console">hg debuginstall</font> </p> <p><font face="Lucida Console"></font>  </p> <h1><font face="Lucida Console">浣跨敤HG鍚屾鏁版嵁</font></h1> <h2><font face="Lucida Console">鍒涘緩浠撳簱</font></h2> <p><font face="Lucida Console">鎵懼埌浣犻渶瑕佸悓姝ョ殑鐩綍,榪涘叆鐩綍</font></p> <p><font face="Lucida Console">鎵ц</font></p> <p><font face="Lucida Console">hg init</font></p> <p><font face="Lucida Console">vi .hg/hgrc</font></p> <p><font face="Lucida Console">娣誨姞浠ヤ笅鍐呭,璁╄繖涓粨搴撴敮鎸佸閮╬ush</font></p> <p><font face="Lucida Console">[ui]</font></p> <p><font face="Lucida Console">username=<font color="#ff0000">鏈嶅姟鍣ㄦ彁浜ゅ悗鐪嬪埌鐨勭敤鎴峰悕</font></font></p> <p><font face="Lucida Console">[web]<br /></font></p> <p><div>push_ssl = false</div><font face="Lucida Console">allow_push=*<br /></font></p> <h2><font face="Lucida Console">鍚屾</font></h2> <p><font face="Lucida Console">vi /etc/sysconfig/iptables</font></p> <p><font face="Lucida Console">娣誨姞HG鏈嶅姟鐨?000绔彛</font></p> <p><font face="Lucida Console">-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 8000 -j ACCEPT</font></p> <p><font face="Lucida Console">寮鍚粨搴撳悓姝ユ湇鍔?/font></p> <p><font face="Lucida Console">hg serve</font></p> <p><font face="Lucida Console">鏈湴鏈哄櫒鍚屾牱鎵懼埌鏂囦歡澶?鍒涘緩浠撳簱</font></p> <p><font face="Lucida Console">hg init</font></p> <p><font face="Lucida Console">浠ュ悗姣忔闇瑕佸悓姝ユ椂,浣跨敤鍛戒護(hù),鎴栬呬箤榫烪G鐨勭晫闈㈠伐鍏鋒媺鍙栨湇鍔″櫒鏁版嵁鍗沖彲</font></p> <p><font face="Lucida Console">hg pull http://鏈嶅姟鍣ㄥ湴鍧:8000</font></p> <p><font face="Lucida Console"></font> </p> <p><font face="Lucida Console">鐗堟湰鎻愪氦鏂規(guī)硶涓嶩G鏃ュ父浣跨敤綾諱技, 榪欓噷涓嶅啀闃愯堪</font></p> <h1><font face="Lucida Console">紱葷嚎鏇存柊</font></h1> <p>瀵逛簬鏌愪簺鏈嶅姟鍣ㄦ繁澶勯槻鐏鎴栬呭畨鍏ㄧ櫥褰曞悗鏂?涓嶈兘鐩存帴寮鍚?000绔彛鐨勬儏鍐?/p> <p>鍙互浣跨敤hg瀵煎嚭涓涓猵atch, 浼犺緭鍒拌繙紼嬫湇鍔″櫒, 浣跨敤hg import PATCH 鍗沖彲</p><img src ="http://www.shnenglu.com/sunicdavy/aggbug/172798.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/sunicdavy/" target="_blank">鎴橀瓊灝忕瓚</a> 2012-04-26 11:11 <a href="http://www.shnenglu.com/sunicdavy/archive/2012/04/26/172798.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>Linux涓嬩嬌鐢–odeLite璁劇疆宸ヤ綔璺緞gdb鍑洪敊鐨勮В鍐蟲(chóng)柟娉?/title><link>http://www.shnenglu.com/sunicdavy/archive/2012/03/30/169535.html</link><dc:creator>鎴橀瓊灝忕瓚</dc:creator><author>鎴橀瓊灝忕瓚</author><pubDate>Fri, 30 Mar 2012 08:07:00 GMT</pubDate><guid>http://www.shnenglu.com/sunicdavy/archive/2012/03/30/169535.html</guid><wfw:comment>http://www.shnenglu.com/sunicdavy/comments/169535.html</wfw:comment><comments>http://www.shnenglu.com/sunicdavy/archive/2012/03/30/169535.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/sunicdavy/comments/commentRss/169535.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/sunicdavy/services/trackbacks/169535.html</trackback:ping><description><![CDATA[<p>CodeLite鏋佸姏鐨勬ā浠縑isual Studio鐨勭晫闈㈠強(qiáng)琛ㄧ幇褰㈠紡. 浣嗘槸鍦ㄦ湁浜涢厤緗」涓婂嵈瀛樺湪鐫鎿嶄綔涓嶅悓, 鐪嬪浘璇磋瘽:</p> <p><a href="http://www.shnenglu.com/images/cppblog_com/sunicdavy/Windows-Live-Writer/LinuxCodeLite_E0CD/image_2.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.shnenglu.com/images/cppblog_com/sunicdavy/Windows-Live-Writer/LinuxCodeLite_E0CD/image_thumb.png" width="763" height="183"></a></p> <p>榪欐槸欏圭洰涓殑宸ョ▼閰嶇疆璁懼畾欏逛腑鐨勮皟璇曞櫒鍙傛暟璁劇疆. 鍥句腑灝哖rogram鍚姩紼嬪簭欏硅瀹氫負(fù)鐩稿璺緞, 鑰學(xué)orking Folder宸ヤ綔鐩綍欏硅涓虹粷瀵硅礬寰?</p> <p>榪欐牱鐨勮瀹氭棤娉曞惎鍔ㄨ皟璇曞櫒, gdb灝嗘姤閿? 鏃犳硶鎵懼埌璋冭瘯紼嬪簭:</p> <p><a href="http://www.shnenglu.com/images/cppblog_com/sunicdavy/Windows-Live-Writer/LinuxCodeLite_E0CD/image_4.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.shnenglu.com/images/cppblog_com/sunicdavy/Windows-Live-Writer/LinuxCodeLite_E0CD/image_thumb_1.png" width="400" height="155"></a></p> <p>鐮旂┒浜?jiǎn)涓涓? 鍙戠幇璁懼畾欏歸噷寮曞浣犱嬌鐢ㄦ祻瑙堢洰褰曞璇濇榪涜閫夋嫨, 灝濊瘯涓涓? 灝哖rogram鏀逛負(fù)緇濆璺緞</p> <p><a href="http://www.shnenglu.com/images/cppblog_com/sunicdavy/Windows-Live-Writer/LinuxCodeLite_E0CD/image_6.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.shnenglu.com/images/cppblog_com/sunicdavy/Windows-Live-Writer/LinuxCodeLite_E0CD/image_thumb_2.png" width="759" height="107"></a></p> <p>F5寮濮嬭皟璇? 涓嶆姤閿? main涓嬌鐢╣etcwd鑾峰彇褰撳墠璺緞楠岃瘉, 璁劇疆姝g‘, 闂瑙e喅</p> <p> </p> <p>鍒嗘瀽: CodeLite搴旇鍙槸灝嗕袱涓弬鏁扮畝鍗曠殑浼犵粰浜?jiǎn)gdb, 浣嗘槸gdb騫朵笉鐭ラ亾宸ョ▼鐩稿璺緞,鍥犳鎶ラ敊. 榪欏浜嶤odeLite寮鍙戣呮潵璇?鐞嗚В鏄紜殑, 紼嬪簭鍛樻濇兂.</p> <p>浣嗘槸瀵逛簬浜у搧鏉ヨ鏄け璐ョ殑</p> <p>VisualStudio鐨勮皟璇曞櫒涓嶪DE緇撳悎绱у瘑, 鍥犳浠ヤ駭鍝佹濇兂寮鍙戠▼搴? 灝辮兘閬垮厤榪欑綾諱技鐨勯棶棰?/p><img src ="http://www.shnenglu.com/sunicdavy/aggbug/169535.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/sunicdavy/" target="_blank">鎴橀瓊灝忕瓚</a> 2012-03-30 16:07 <a href="http://www.shnenglu.com/sunicdavy/archive/2012/03/30/169535.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>璁¬C璋冭瘯鍣ㄦ紜樉紺篣TF-8瀛楃涓?/title><link>http://www.shnenglu.com/sunicdavy/archive/2012/02/14/165566.html</link><dc:creator>鎴橀瓊灝忕瓚</dc:creator><author>鎴橀瓊灝忕瓚</author><pubDate>Tue, 14 Feb 2012 07:21:00 GMT</pubDate><guid>http://www.shnenglu.com/sunicdavy/archive/2012/02/14/165566.html</guid><wfw:comment>http://www.shnenglu.com/sunicdavy/comments/165566.html</wfw:comment><comments>http://www.shnenglu.com/sunicdavy/archive/2012/02/14/165566.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.shnenglu.com/sunicdavy/comments/commentRss/165566.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/sunicdavy/services/trackbacks/165566.html</trackback:ping><description><![CDATA[<p>榛樿鐨? VC璋冭瘯鍣ㄥ彧鑳芥甯告樉紺篈NSI瀛楃涓插強(qiáng)UNICODE瀛楃涓? 鑰孶TF-8瀛楃涓插強(qiáng)鍏朵粬鏍煎紡鍒欐棤娉曟樉紺?/p> <p>榪欓噷鏃犻渶緙栧啓鎻掍歡鍙?qiáng)淇敋w厤緗枃浠?鍙渶瑕佸皢瑕佹樉紺虹殑瀛楃涓叉媺鍒癢atch涓?騫跺湪鍙橀噺鍚庨潰娣誨姞,s8鍗沖彲鏄劇ず</p> <p><a href="http://www.shnenglu.com/images/cppblog_com/sunicdavy/Windows-Live-Writer/165611ed03f8_D62F/image_4.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.shnenglu.com/images/cppblog_com/sunicdavy/Windows-Live-Writer/165611ed03f8_D62F/image_thumb_1.png" width="233" height="42"></a> --> <a href="http://www.shnenglu.com/images/cppblog_com/sunicdavy/Windows-Live-Writer/165611ed03f8_D62F/image_2.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.shnenglu.com/images/cppblog_com/sunicdavy/Windows-Live-Writer/165611ed03f8_D62F/image_thumb.png" width="173" height="51"></a></p> <p>鍚屾牱綾誨瀷鐨勫姛鑳戒篃搴旇寰堢啛鎮(zhèn)?/p> <p>,鏁板瓧  灝嗗彉閲忔媶鍒嗕負(fù)鏁扮粍鏄劇ず, 鏁板瓧鏄鏄劇ず澶氬皯浣? 姝ゆ硶瀵筩onst char*榪欑被鍘熷瀛楃涓查潪甯告湁鐢?/p> <p>,x 16榪涘埗鏌ョ湅</p> <p>,hr  鏌ョ湅Windows HRESULT瑙i噴</p> <p>,wm Windows娑堟伅,渚嬪0x0010, wm 鏄劇ず WM_CLOSE</p><img src ="http://www.shnenglu.com/sunicdavy/aggbug/165566.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/sunicdavy/" target="_blank">鎴橀瓊灝忕瓚</a> 2012-02-14 15:21 <a href="http://www.shnenglu.com/sunicdavy/archive/2012/02/14/165566.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>[杞嚜CSDN]涓夊ソ瀛︾敓Chris Lattner鐨凩LVM緙栬瘧宸ュ叿閾?/title><link>http://www.shnenglu.com/sunicdavy/archive/2011/12/31/163277.html</link><dc:creator>鎴橀瓊灝忕瓚</dc:creator><author>鎴橀瓊灝忕瓚</author><pubDate>Sat, 31 Dec 2011 08:51:00 GMT</pubDate><guid>http://www.shnenglu.com/sunicdavy/archive/2011/12/31/163277.html</guid><wfw:comment>http://www.shnenglu.com/sunicdavy/comments/163277.html</wfw:comment><comments>http://www.shnenglu.com/sunicdavy/archive/2011/12/31/163277.html#Feedback</comments><slash:comments>15</slash:comments><wfw:commentRss>http://www.shnenglu.com/sunicdavy/comments/commentRss/163277.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/sunicdavy/services/trackbacks/163277.html</trackback:ping><description><![CDATA[<p>鍘熸枃閾炬帴: <a >http://www.programmer.com.cn/9436/</a></p> <p>浣滆? 鐜嬭秺</p> <p> </p> <p><strong>2011騫?2鏈?鏃ワ紝LLVM 3.0姝e紡鐗堝彂甯冿紝瀹屾暣鏀寔鎵鏈塈SO C++鏍囧噯鍜屽ぇ閮ㄥ垎C++ 0x鐨勬柊鐗規(guī)э紝 榪欏浜庝竴涓煭鐭嚑騫寸殑鍏ㄦ柊欏圭洰鏉ヨ闈炲父涓嶆槗銆?/strong></p> <p><strong>寮鍙戣呯殑鎯婃剷</strong></p> <p>鍦?011騫碬WDC錛堣嫻鏋滃叏鐞冨紑鍙戣呭ぇ浼?xì)锛?jí)鐨勪竴鍦轟笌Objective-C鐩稿叧鐨勮搴т笂錛屽紑鍙戣呯殑浜虹敓瑙傝棰犺浜?jiǎn)銆?/p> <p>浣滀負(fù)涓涓紑鍙戣咃紝綆$悊濂借嚜宸辯▼搴忔墍浣跨敤鐨勫唴瀛樻槸澶╃粡鍦頒箟鐨勪簨錛屽ソ姣斾漢浠湪婧滅嫍鏃跺繀欏繪竻鐞嗙嫍鐨勬帓娉勭墿涓鏍鳳紙緹庡浗闅忓鍙鈥淐lean up after your dogs鈥濈殑鏍囧織錛夈傚湪鏈闃舵涓奀璇█鐨勮紼嬫椂錛屾暀鎺堜滑浼?xì)鍚戝鐢熷弽澶嶅鉴櫚冨Q氬鏋滀嬌鐢╩alloc鍑芥暟鐢寵浜?jiǎn)涓鍧楀唴瀛橈紝浣跨敤瀹屽悗蹇呴』鍐嶄嬌鐢╢ree鍑芥暟鎶婄敵璇風(fēng)殑鍐呭瓨榪樼粰緋葷粺鈥斺斿鏋滀笉榪橈紝浼?xì)閫犳垚鈥滃唴瀛樻硠婕忊濈殑緇撴灉銆傝繖瀵逛簬Hello World鍙兘榪樹(shù)笉綆椾弗閲嶏紝浣嗗浜庡簽澶х殑紼嬪簭鎴栨槸闀挎椂闂磋繍琛岀殑鏈嶅姟鍣ㄧ▼搴忥紝娉勫唴瀛樻槸鑷村懡鐨勩傚鏋滄病璁頒綇錛岃嚜宸辮繕娓呯悊浜?jiǎn)涓啤锛岄犳垚鐨勭粨鏋滃垯涓ラ噸寰楀鈥斺?a >鐩存帴瀵艱嚧紼嬪簭宕╂簝</a>銆?/p> <p>Objective-C鏈夌被浼糾alloc/free鐨勫瀛愶紝鍙玜lloc/dealloc錛岃繖縐嶅師濮嬬殑鏂瑰紡濡傚悓綆$悊C鍐呭瓨?shù)竴鏍峰洶闅俱傛墍浠bjective-C涓殑鍐呭瓨綆$悊鍙堝鍔犱簡(jiǎn)鈥滃紩鐢ㄨ鏁扳濈殑鏂規(guī)硶錛屼篃灝辨槸濡傛灉涓涓墿浠惰鍒殑鐗╀歡寮曠敤涓嬈★紝鍒欏紩鐢ㄨ鏁板姞涓錛涘鏋滀笉鍐嶈璇ョ墿浠跺紩鐢紝鍒欏紩鐢ㄨ鏁板噺涓錛涘綋寮曠敤璁℃暟鍑忚嚦闆舵椂錛屽垯緋葷粺鑷姩娓呮帀璇ョ墿浠舵墍鍗犵殑鍐呭瓨銆傚叿浣撴潵璇達(dá)紝濡傛灉鎴戜滑鏈変竴涓瓧絎︿覆錛屽綋寤虹珛鏃訛紝闇瑕佷嬌鐢╝lloc鏂規(guī)硶鏉ョ敵璇峰唴瀛橈紝寮曠敤璁℃暟鍒欏彉鎴愪簡(jiǎn)涓錛涚劧鍚庤鍏朵粬鐗╀歡寮曠敤鏃訛紝闇瑕佺敤retain鏂規(guī)硶鍘誨鍔犲畠鐨勫紩鐢ㄨ鏁幫紝鍙樻垚浜屻傚綋瀹冨拰鍒氭墠寮曠敤鐨勭墿浠惰劚紱誨叧鑱旀椂錛岄渶浣縭elease鏂規(guī)硶鍑忓皯寮曠敤璁℃暟錛屽張鍙樺洖浜?jiǎn)涓錛涙渶鍚庯紝浣跨敤瀹岃繖涓瓧絎︿覆鏃訛紝鍐嶇敤release鏂規(guī)硶鍑忓皯鍏跺紩鐢ㄨ鏁幫紝榪欐椂錛岃繍琛屽簱鍙戠幇鍏跺紩鐢ㄨ鏁板彉?shù)负闆朵簡(jiǎn)锛屽垯鍥炴敹璧板畠鐨勫唴瀛樸傝繖鏄?a >鎵嬪姩鐨勬柟寮?/a>銆?/p> <p>榪欑鏂瑰紡鑷劧寰堥夯鐑?chǔ)锛屾墍浠ュ張璁捐鍑轟竴縐嶅彨鍋歛utorelease鐨勬満鍒訛紙涓嶆槸綾諱技Java鐨勮嚜鍔ㄥ瀮鍦懼洖鏀訛級(jí)銆傚湪Objective-C涓紝璁捐浜?jiǎn)涓涓彨鍋歂SAutoReleasePool鐨勬睜錛屽綋寮鍙戣呴渶瑕佸畬鎴愪竴涓換鍔℃椂錛堟瘮濡傛瘡寮鍚竴涓嚎紼嬶紝鎴栬呭紑濮嬩竴涓嚱鏁幫級(jí)錛屽彲浠ユ墜鍔ㄥ垱绔嬩竴涓繖鏍風(fēng)殑姹犲瓙錛?鐒跺悗閫氳繃鏄懼紡鐢蟲(chóng)槑鎶婄墿浠舵墧榪涜嚜鍔ㄥ洖鏀舵睜涓侼SAutoReleasePool鍐呮湁涓涓暟緇勬潵淇濆瓨澹版槑涓篴utorelease鐨勬墍鏈夊璞°傚鏋滀竴涓璞″0鏄庝負(fù)autorelease錛屽垯浼?xì)鑷姩鍔犲埌姹犲瓙閲屻傚鏋滃畬鎴愪簡(jiǎn)涓涓換鍔★紙緇撴潫綰跨▼浜?jiǎn)锛屾垨鑰呴鍑洪偅涓嚱鏁幫級(jí)錛屽垯寮鍙戣呴渶瀵硅繖涓睜瀛愬彂閫佷竴涓猟rain娑堟伅銆傝繖鏃訛紝NSAutoReleasePool浼?xì)瀵规睜瀛愪腑鎵鏈夌殑鐗╀歡鍙戦乺elease娑堟伅錛屾妸瀹冧滑鐨勫紩鐢ㄨ鏁伴兘鍑忎竴 鈥斺旇繖灝卞ソ姣旀父娉蟲(chóng)睜鍏抽棬鏃墮氱煡鎵鏈夊浜洪兘鈥滄粴铔嬧濅竴鏍楓傛墍浠ュ紑鍙戣呮棤闇鏄懼紡澹版槑release錛屾墍鏈夌殑鐗╀歡涔熶細(xì)鍦ㄦ睜瀛愭竻絀烘椂鑷姩鍛煎彨release鍑芥暟錛屽鏋滃紩鐢ㄨ鏁板彉鎴愰浂浜?jiǎn)锛尵p葷粺鎵嶅洖鏀墮偅鍧楀唴瀛樸傛墍浠ヨ繖鏄釜<a >鍗婅嚜鍔ㄣ佸崐鎵嬪姩鐨勬柟寮?/a>銆?/p> <p>Objective-C鐨勮繖縐嶆柟寮忚櫧鐒舵瘮璧稢鏉ヨ繘浜?jiǎn)涓澶ф錛屾垜鍒氭墠鑺變簡(jiǎn)鍑犲垎閽熷氨鍜岃鑰呰鏄庣櫧浜?jiǎn)銆傚彧瑕侀伒瀹堜笂闈㈣繖涓や釜綆鍗曠殑瑙勫垯錛屽氨鍙互淇濊瘉涓嶇姱浠諱綍閿欒銆備絾榪欏拰鍚庢潵鐨凧ava鑷姩鍨冨溇鍥炴敹鐩告瘮鍒欐槸闈炲父綣佺悙鐨勶紝鍝曟槸鍐嶇啛緇冪殑寮鍙戣咃紝涓涓嶅皬蹇?jī)灏变細(xì)寮勯敊銆傝屼笖錛屽摢鎬曞緢綆鍗曠殑浠g爜錛屾瘮濡傜墿浠剁殑getter/setter鍑芥暟錛岄兘闇瑕佺敤鎴峰啓涓婁竴鍫嗙殑浠g爜鏉ョ鐞嗘帴鏀舵潵鐨勭墿浠剁殑鍐呭瓨銆?/p> <p>緇忓吀鏁欐潗銆奀ocoa Programming for Mac OS X銆嬬敤浜?jiǎn)鏁存暣涓绔犺妭鐨勭瘒騫咃紝鏉ヨ瑙bjective-C涓唴瀛樼鐞嗙浉鍏崇殑鍐呭錛屼絾鍒濆鑰呬滑鐪嬪緱榪樻槸涓澶撮浘姘淬傛墍浠ワ紝鍦?007騫?0.5鍙戝竷鏃訛紝Objective-C鍋氬嚭浜?jiǎn)鏈夊彶浠ユ潵鏈澶х殑鏇存柊錛屾渶澶х殑浜偣鏄畠鐨勮繍琛屽簱libobjc 2.0姝e紡鏀寔鑷姩鍨冨溇鍥炴敹錛屼篃灝辨槸鐢辮繍琛屽簱鍦ㄨ繍琛屾椂闅忔椂渚︽祴鍝簺鐗╀歡闇瑕佽閲婃斁銆傚惉涓婂幓寰堜笉閿欙紝鍙儨浣跨敤榪欎釜鎶鏈殑欏圭洰鍗村皯涔嬪張灝戙傚師鍥犲緢綆鍗曪紝浣跨敤榪欎釜鐗規(guī)э紝浼?xì)鏈夊緢澶х殑鎬ц兘鎹熷け錛屼嬌Objective-C鐨勫唴瀛樼鐞嗘晥鐜囦綆寰楀拰Java涓鏍鳳紝鑰屼笖涓鏃︽湁涓涓ā鍧楀惎鐢ㄤ簡(jiǎn)榪欎釜鐗規(guī)э紝榪欎釜榪涚▼涓墍鏈夌殑鍦版柟閮借鍚敤榪欎釜鐗規(guī)р斺斿洜姝ゅ鏋滀綘鍐欎簡(jiǎn)涓涓嬌鐢ㄥ瀮鍦懼洖鏀剁殑搴擄紝閭f墍鏈夊紩鐢ㄤ綘搴撶殑紼嬪簭灝遍兘寰楄榪嬌鐢ㄥ瀮鍦懼洖鏀躲傛墍浠pple鑷繁涔熶笉浣跨敤榪欓」鎶鏈紝澶ч噺鐨勭涓夋柟搴撲篃涓嶄嬌鐢ㄥ畠銆?/p> <p>榪欎釜闂闅廇pple鍦ㄧЩ鍔ㄥ競(jìng)鍦虹殑涓鐐蛋綰㈣屽彉寰楁洿鍔犱弗宄匯備笉榪囪繖嬈★紝Apple鍜屼笌浼?xì)鐨勫紑鍙戣呰錛屼粬浠壘鍒頒簡(jiǎn)涓涓В鍐抽棶棰樼殑緇堟瀬鏂規(guī)硶錛岃繖涓柟娉曟妸浠庝笘鐣屽悇鍦頒笓紼嬭刀鏉ヨ亞鍚湥璋曠殑寮鍙戣呮儕寰楃洰鐬彛鍛嗏斺斾綘涓嶇敤鍐欎換浣曞唴瀛樼鐞嗕唬鐮侊紝涔熶笉闇瑕佷嬌鐢ㄨ嚜鍔ㄥ瀮鍦懼洖鏀躲傚洜涓烘垜浠殑緙栬瘧鍣ㄥ凡緇忓浼?xì)浜?jiǎn)涓婇潰鎵浠嬬粛鐨勫唴瀛樼鐞嗚鍒欙紝浼?xì)鑷姩鍦ň~栬瘧紼嬪簭鏃舵妸榪欎簺浠g爜鎻掕繘鍘匯?/p> <p>榪欎釜緙栬瘧鍣紝涓鐩存槸Apple鍏紑鐨勭瀵嗏斺擫LVM銆傝瀹冨叕寮錛屾槸鍥犱負(fù)瀹冭嚜濮嬭嚦緇堥兘鏄竴涓紑婧愰」鐩紱鑰岀瀵嗭紝鍒欐槸鍥犱負(fù)瀹冧粠鏉ユ病鍏紑鍦╓WDC鐨凨eynote婕旇涓婁寒鐩歌繃 銆?/p> <p>涓鐩村叧娉ㄨ繖緋誨垪榪炶澆鐨勮鑰呬竴瀹氳繕璁板緱錛屽湪絎簩綃囥奓inus Torvalds鐨勭煭瑙嗐嬩粙緇岮pple鍜孏PL紺懼尯鐨勪笉鍚堟椂錛屾彁鍒拌繃鈥滆嚜浠ヤ負(fù)鏄絾浠g爜鍙堝啓寰楀樊鐨勫紑婧愰」鐩紝Apple浜嬪悗涔熼亣鍒頒笉灝戯紝姣斿GCC緙栬瘧鍣ㄩ」鐩粍銆傝櫧鐒跺ぇ鎶婇挒紲ㄦ墧榪涘幓錛屽湪鍏堟湡鑳藉瑙e喅涓浜涢棶棰橈紝浣嗘椂闂撮暱浜?jiǎn)杩櫨煠錆h鎬誨拰Apple榪囦笉鍘伙紝騫朵互鑷繁鍦ㄥ紑婧愪笘鐣岀殑鍦頒綅鎭悡涔嬶紝鏈緇圓pple鐢變簬鍙椾笉浜?jiǎn)杩欎簺椤圭洰缁勭殑鎬佸害銆佸崗璁佷唬鐮佽川閲忥紝瑙夊緱榪樹(shù)笉濡傝嚜宸遍犺疆瀛愭潵寰楁柟渚褲傗滾LVM鍒欐槸Apple閫犵殑榪欎釜杞瓙錛屽畠鐨勭洰鐨勬槸瀹屽叏鏇夸唬鎺塆CC閭f潯緙栬瘧閾俱傚畠鐨勪富瑕佷綔鑰咃紝鍒欐槸鐜板湪灝辮亴浜嶢pple鐨凜hris Lattner銆?/p> <p><strong>緙栬瘧鍣ㄩ珮鏉愮敓Chris Lattner</strong></p> <p>2000騫達(dá)紝鏈姣曚笟鐨凜hris Lattner鍍忎腑鍥藉鏁板ぇ瀛︾敓涓鏍鳳紝鎸夐儴灝辯彮鍦拌冧簡(jiǎn)GRE錛屾渶緇堝墠寰UIUC錛堜紛鍒╄浼婂ぇ瀛﹀巹宸寸撼棣欐鍒嗘牎錛夛紝寮濮嬩簡(jiǎn)鑹拌嫤璇昏綆楁満紜曞+鍜屽崥澹殑鐢熸動(dòng)銆傚湪榪欓樁孌碉紝<a >浠栦笉浠呭懆娓哥編鍥藉悇澶ф櫙鐐?/a>錛屾洿鏄姫鍔涘涔?fàn)绉戝鏂囧寲鐭ヨ瘑锛尵樔潈備簡(jiǎn)鈥滈緳涔︹濓紙銆奀ompilers: Principles, Techniques, and Tools銆嬶級(jí)錛?a >鎴愪簡(jiǎn)GPA鐗涗漢</a>銆愭敞錛氭渶緇堝鍒嗙Н4.0婊″垎銆戯紝浠ュ強(qiáng)涓嶆柇鍦扮爺絀舵帰绱㈠叧浜庣紪璇戝櫒鐨勬湭鐭ラ鍩燂紝鍙戣〃浜?jiǎn)涓綃囧張涓綃囩殑璁烘枃錛屾槸涓浗浼犵粺瑙傚康閲岀殑鈥滀笁濂藉鐢熲濄備粬鐨?a >紜曞+姣曚笟璁烘枃鎻愬嚭浜?jiǎn)涓濂楀畬鏁寸殑鍦ㄧ紪璇戞椂銆侀摼鎺ユ椂銆佽繍琛屾椂鐢氳嚦鏄湪闂茬疆鏃朵紭鍖栫▼搴忕殑緙栬瘧鎬濇兂</a>錛岀洿鎺ュ瀹氫簡(jiǎn)LLVM鐨勫熀紜銆?<br>LLVM鍦ㄤ粬蹇靛崥澹椂鏇村姞鎴愮啛錛屼嬌鐢℅CC浣滀負(fù)鍓嶇鏉ュ鐢ㄦ埛紼嬪簭榪涜璇箟鍒嗘瀽浜х敓IF錛圛ntermidiate Format錛夛紝鐒跺悗LLVM浣跨敤鍒嗘瀽緇撴灉瀹屾垚浠g爜浼樺寲鍜岀敓鎴愩傝繖欏圭爺絀惰浠栧湪2005騫存瘯涓氭椂錛屾垚涓哄皬鏈夊悕姘旂殑緙栬瘧鍣ㄤ笓瀹訛紝浠栦篃鍥犳鏃╂棭鍦拌Apple鐩鎬腑錛屾垚涓哄叾緙栬瘧鍣ㄩ」鐩殑楠ㄥ共銆?/p> <p>Apple鐩鎬腑Chris Lattner涓昏鏄湅涓璍LVM鑳芥憜鑴盙CC鏉熺細(xì)銆侫pple錛堝寘鎷腑鍚庢湡鐨凬eXT錛?涓鐩翠嬌鐢℅CC浣滀負(fù)瀹樻柟鐨勭紪璇戝櫒銆侴CC浣滀負(fù)寮婧愪笘鐣岀殑緙栬瘧鍣ㄦ爣鍑嗕竴鐩村仛寰椾笉閿欙紝浣咥pple瀵圭紪璇戝伐鍏蜂細(xì)鎻愬嚭鏇撮珮鐨勮姹傘?/p> <p>涓鏂歸潰錛屾槸Apple瀵筄bjective-C璇█錛堢敋鑷沖悗鏉ュC璇█錛夋柊澧炲緢澶氱壒鎬э紝浣咷CC寮鍙戣呭茍涓嶄拱Apple鐨勫笎鈥斺斾笉緇欏疄鐜幫紝鍥犳绱㈡у悗鏉ヤ袱鑰呭垎鎴愪袱鏉″垎鏀垎鍒紑鍙戯紝榪欎篃閫犳垚Apple鐨勭紪璇戝櫒鐗堟湰榪滆惤鍚庝簬GCC鐨勫畼鏂圭増鏈傚彟涓鏂歸潰錛孏CC鐨勪唬鐮佽﹀悎搴﹀お楂橈紝涓嶅ソ鐙珛錛岃屼笖<a >瓚婃槸鍚庢湡鐨勭増鏈紝浠g爜璐ㄩ噺瓚婂樊</a>錛屼絾Apple鎯沖仛鐨勫緢澶氬姛鑳斤紙姣斿鏇村ソ鐨処DE鏀寔錛夐渶瑕佹ā鍧楀寲鐨勬柟寮忔潵璋冪敤GCC錛屼絾GCC涓鐩翠笉緇欏仛銆傜敋鑷蟲(chóng)渶榪戯紝銆?a >GCC榪愯鐜璞佸厤鏉℃ 錛堣嫳鏂囩増錛?/a>銆嬩粠鏍規(guī)湰涓婇檺鍒朵簡(jiǎn)LLVM-GCC鐨勫紑鍙戙?鎵浠ワ紝榪欑涓嶅拰璁〢pple涓鐩村湪瀵繪壘涓涓珮鏁堢殑銆佹ā鍧楀寲鐨勩佸崗璁洿鏀炬澗鐨勫紑婧愭浛浠e搧錛孋hris Lattner鐨凩LVM鏄劇劧鏄竴涓緢媯掔殑閫夋嫨銆?/p> <p>鍒氳繘鍏pple錛孋hris Lattner灝卞ぇ灞曡韓鎵嬶細(xì)棣栧厛鍦∣penGL灝忕粍鍋氫唬鐮佷紭鍖栵紝鎶奓LVM榪愯鏃剁殑緙栬瘧鏋跺湪OpenGL鏍堜笂錛岃繖鏍稯penGL鏍堣兘澶熶駭鍑烘洿楂樻晥鐜囩殑鍥懼艦浠g爜銆傚鏋滄樉鍗¤凍澶熼珮綰э紝榪欎簺浠g爜浼?xì)鐩存帴鎵斿叆GPU鎵ц銆備絾瀵逛簬涓浜涗笉鏀寔鍏ㄩ儴OpenGL鐗規(guī)х殑鏄懼崱錛堟瘮濡傚綋鏃剁殑Intel GMA鍗★級(jí)錛?a >LLVM鍒欒兘澶熸妸榪欎簺鎸囦護(hù)浼樺寲鎴愰珮鏁堢殑CPU鎸囦護(hù)錛屼嬌紼嬪簭渚濈劧鑳藉姝e父榪愯</a>銆傝繖涓己澶х殑OpenGL瀹炵幇琚敤鍦ㄤ簡(jiǎn)鍚庢潵鍙戝竷鐨凪ac OS X 10.5涓娿傚悓鏃訛紝LLVM鐨勯摼鎺ヤ紭鍖栬鐩存帴鍔犲叆鍒癆pple鐨勪唬鐮侀摼鎺ュ櫒涓婏紝鑰孡LVM-GCC涔熻鍚屾鍒頒嬌鐢℅CC4浠g爜銆?/p> <p>LLVM鐪熸鐨勫彂榪癸紝鍒欏緱絳夊埌Mac OS X 10.6 Snow Leopard鐧諱笂鑸炲彴銆傚彲浠ヨ錛?Snow Leopard鐨勬柊鍔熻兘錛屽畬鍏ㄥ緱鐩婁簬LLVM鐨勬妧鏈傝岃繖涓涓増鏈紝涔熸槸灝哃LVM鎺ㄥ悜鐪熸鎴愮啛鐨勯噸澶ф満閬囥?/p> <p>鍏充簬Snow Leopard鐨勪笁欏逛富鎺ㄦ妧鏈紙64浣嶆敮鎸併丱penCL錛屼互鍙?qiáng)Grand Central Dispatch錛夌殑緇嗚妭錛屾垜浠細(xì)鍦ㄤ笅涓嬈℃湁鏁存暣涓鏈熺瘒騫呬粩緇嗚璁猴紝榪欐鍙槸鐐瑰埌涓烘鈥斺旀垜浠憡璇夎鑰咃紝榪欎簺鎶鏈紝涓嶄絾闇瑕佽璦灞傞潰鐨勬敮鎸侊紙姣斿<a >Grand Centrual Dispatch鎵鐢ㄥ埌鐨勨滀唬鐮佸潡鈥濊娉?/a>錛?榪欒寰堝浜虹湅浣滄槸甯ambda鐨凜錛夛紝涔熼渶瑕佸簳灞備唬鐮佺敓鎴愬拰浼樺寲錛堟瘮濡侽penCL鏄湪榪愯鏃剁紪璇戜負(fù)GPU鎴朇PU浠g爜騫跺彂鎵ц鐨勶級(jí)銆傝岃繖浜涢渶姹傚緱浠ュ疄鐜幫紝褰掑姛浜嶭LVM鑷韓鐨勬柊鍓嶇鈥斺擟lang銆?/p> <p><strong>浼樺紓鐨勭瓟鍗封斺擟lang</strong></p> <p>鍓嶆枃鎻愬埌錛孉pple鍚告敹Chris Lattner鐨勭洰鐨勮姣旀敼榪汫CC浠g爜浼樺寲瀹忓ぇ寰楀鈥斺擥CC緋葷粺搴炲ぇ鑰岀閲嶏紝鑰孉pple澶ч噺浣跨敤鐨凮bjective-C鍦℅CC涓紭鍏堢駭寰堜綆銆傛澶朑CC浣滀負(fù)涓涓函綺圭殑緙栬瘧緋葷粺錛屼笌IDE閰嶅悎寰楀緢宸傚姞涔嬭鍙瘉鏂歸潰鐨勮姹傦紝Apple鏃犳硶浣跨敤LLVM 緇х畫(huà)鏀硅繘GCC鐨勪唬鐮佽川閲忋備簬鏄紝Apple鍐沖畾浠庨浂寮濮嬪啓 C銆丆++銆丱bjective-C璇█鐨勫墠绔?Clang錛屽畬鍏ㄦ浛浠f帀GCC銆?/p> <p>姝e儚鍚嶅瓧鎵鍐欑殑閭f牱錛孋lang鍙敮鎸丆錛孋++鍜孫bjective-C涓夌C瀹舵棌璇█銆?a >2007騫村紑濮嬪紑鍙?/a>錛孋緙栬瘧鍣ㄦ渶鏃╁畬鎴愶紝鑰岀敱浜嶰bjective-C鐩稿綆鍗曪紝鍙槸C璇█鐨勪竴涓畝鍗曟墿灞曪紝寰堝鎯呭喌涓嬬敋鑷沖彲浠ョ瓑浠峰湴鏀瑰啓涓篊璇█瀵筄bjective-C榪愯搴撶殑鍑芥暟璋冪敤錛屽洜姝ゅ湪2009騫存椂錛屽凡緇忓畬鍏ㄥ彲浠ョ敤浜庣敓浜х幆澧冦侰++鐨勬敮鎸佷篃鐑伀鏈濆ぉ鍦拌繘琛岀潃銆?/p> <p>Clang鐨勫姞鍏ヤ唬琛ㄧ潃LLVM鐪熸璧板悜鎴愮啛鍜屽叏鑳斤紝Chris Lattner浠ュ獎(jiǎng)鍝嶄粬鏈澶х殑<a >鈥滈緳涔︹濆皝闈?/a>銆愭敞錛氳http://en.wikipedia.org/wiki/Dragon_Book_(computer_science)銆戜負(fù)鐏墊劅錛屼負(fù)欏圭洰閫夊畾浜?jiǎn)鍥炬爣鈥斺?a >涓鏉″紶鐗欒垶鐖殑椋為緳</a>銆?/p> <p>Clang涓涓噸瑕佺殑鐗規(guī)ф槸緙栬瘧蹇燂紝鍗犲唴瀛樺皯錛岃屼唬鐮佽川閲忚繕姣擥CC鏉ュ緱楂樸傛祴璇曠粨鏋滆〃鏄嶤lang緙栬瘧Objective-C浠g爜鏃墮熷害涓篏CC鐨?鍊嶃愭敞錛歨ttp://llvm.org/pubs/2007-07-25-LLVM-2.0-and-Beyond.pdf銆戯紝鑰岃娉曟爲(wèi)錛圓ST錛夊唴瀛樺崰鐢ㄥ垯涓鴻緙栬瘧婧愮爜鐨?.3鍊嶏紝鑰?a >GCC鍒欏彲浠ヨ交鏄撳湴鍙互瓚呰繃10鍊?/a>銆侰lang涓嶄絾緙栬瘧浠g爜蹇紝瀵逛簬鐢ㄦ埛鐘笅鐨勯敊璇紝涔熻兘澶熸洿鍑嗙‘鍦扮粰鍑哄緩璁備嬌鐢ㄨ繃GCC鐨勮鑰呭簲璇ョ啛鎮(zhèn)夛紝GCC緇欏嚭鐨勯敊璇彁紺哄熀鏈兘涓嶆槸緇欎漢鐪嬬殑銆?/p> <p>姣斿鏈綆鍗曠殑錛?/p> <p>struct foo { int x; } <br>typedef int bar;</p> <p>濡傛灉浣跨敤GCC緙栬瘧錛屽畠?yōu)畣鍛婅瘔浣犲Q?<br>t.c:3: error: two or more data types in declaration specifiers</p> <p>浣嗘槸Clang緇欏嚭鐨勫嚭閿欐彁紺哄垯鏄懼緱浜烘у寲寰楀錛?<br>t.c:1:22: error: expected 鈥?鈥?after struct</p> <p>鐢氳嚦錛孋lang鍙互鏍規(guī)嵁璇錛屽儚鎷煎啓媯(gè)鏌ョ▼搴忎竴鏍峰湴鍛婅瘔浣犲彲鑳界殑鏇夸唬鏂規(guī)銆?<br>姣斿榪欎釜紼嬪簭錛?/p> <p>#include <inttypes.h> <br>int64 x;</p> <p>GCC涓鏍風(fēng)粰鍑轟貢鐮佷技鐨勫嚭閿欐彁紺猴細(xì)</p> <p>t.c:2: error: expected 鈥?鈥? 鈥?鈥? 鈥?鈥? 鈥榓sm鈥?or 鈥榑_attribute__鈥?before 鈥榵鈥?/p> <p>鑰屼紭闆呯殑Clang鍒欑敤褰╄壊鐨勬彁紺哄憡璇変綘鏄笉鏄嫾閿欎簡(jiǎn)錛屽茍緇欏嚭鍙兘鐨勫彉閲忓悕錛?/p> <p>t.c:2:1: error: unknown type name 鈥榠nt64鈥? did you mean 鈥榠nt64_t鈥? <br>int64 x;^~~~~int64_t</p> <p>鏇村鐨勪緥瀛愬彲浠ュ弬鑰僪ttp://blog.llvm.org/2010/04/amazing-feats-of-clang-error-recovery.html銆?鑰屽悓鏃跺張鍥犱負(fù)Clang鏄珮搴︽ā鍧楀寲鐨勪竴涓墠绔紝寰堝鏄撳疄鐜頒唬鐮佺殑楂樺害閲嶇敤銆傛墍浠ユ瘮濡俋code 4.0鐨勯泦鎴愮紪紼嬬幆澧冨氨浣跨敤Clang鐨勬ā鍧楁潵瀹炵幇浠g爜鐨勮嚜鍔ㄥ姞浜佷唬鐮佸嚭閿欑殑鎻愮ず鍜岃嚜鍔ㄧ殑浠g爜琛ュ叏銆傚紑鍙戣呬嬌鐢╔code 4.0浠ュ悗鐨勭増鏈紝鍙互鏋佸ぇ鍦版彁楂樼紪紼嬫晥鐜囷紝灝藉彲鑳藉湴闄嶄綆緙栬瘧閿欒鐨勫彂鐢熺巼銆?/p> <p>鏀寔C++涔熸槸Clang鐨勪竴欏歸噸瑕佷嬌鍛姐侰++鏄竴闂ㄩ潪甯稿鏉傜殑璇█錛屽ぇ澶氱紪璇戝櫒錛堝GCC銆丮SVC錛夌敤浜?jiǎn)鍗佸骞寸敋鑷充簩鍗佸骞存潵瀹屽杽瀵笴++鐨勬敮鎸侊紝浣嗘晥鏋滀緷鐒朵笉寰堢悊鎯熾侰lang鐨凜++鏀寔鍗翠竴鐩村鐏鑽煎湴灞曞紑鐫銆?010騫?鏈?鏃ワ紝Clang宸茬粡鎴愮啛鍒拌兘鑷婦錛堝嵆浣跨敤Clang緙栬瘧Clang錛屽埌鎴戝彂紼挎椂錛?a >LLVM 3.0鍙戝竷宸插畬鏁存敮鎸佹墍鏈塈SO C++鏍囧噯錛屼互鍙?qiáng)澶ч儴鍒咰++ 0x鐨勬柊鐗規(guī)?/a>銆?/p> <p>榪欏浜庝竴涓煭鐭嚑騫寸殑鍏ㄦ柊欏圭洰鏉ヨ鏄潪甯鎬笉鏄撶殑銆傚緱鐩婁簬鏈韓鍋ュ.鐨勬灦鏋勫拰Apple鐨勫ぇ鍔涙敮鎸侊紝Clang瓚婃潵瓚婂叏鑳斤紝浠?a >FreeBSD</a>銆愭敞錛歨ttp://lists.freebsd.org/pipermail/freebsd-current/2009-February/003743.html銆?鍒?a >Linux Kernel</a>銆愭敞錛歨ttp://lists.cs.uiuc.edu/pipermail/cfe-dev/2010-October/011711.html銆戯紝 浠?a >Boost</a>銆愭敞錛歨ttp://blog.llvm.org/2010/05/clang-builds-boost.html銆?鍒?a >Java铏氭嫙鏈?/a>錛?Clang鏀寔鐨勯」鐩秺鏉ヨ秺澶氥?/p> <p>Apple鐨凪ac OS X浠ュ強(qiáng)iOS涔熸垚浜?jiǎn)Clang鍜孡LVM鐨勪富瑕佽瘯楠屽満鈥斺?0.6鏃朵唬錛屽緢澶氶渶瑕侀珮鏁堣繍琛岀殑紼嬪簭姣斿OpenSSL鍜孒otspot灝辯敱LLVM-GCC緙栬瘧鏉ュ姞閫熺殑銆傝?0.6鏃朵唬鐨刋code 3.2璇稿鍥懼艦鐣岄潰寮鍙戠▼搴忓Xcode銆両nterface Builder絳夛紝鐨嗙敱Clang緙栬瘧銆傚埌浜?jiǎn)Mac OS X 10.7錛屾暣涓郴緇熺殑鐨勪唬鐮侀兘鐢盋lang鎴朙LVM-GCC緙栬瘧銆愭敞錛歨ttp://llvm.org/Users.html銆戙?/p> <p><strong>LLVM鍛ㄨ竟宸ュ叿</strong></p> <p>鐢變簬鍙楀埌Clang欏圭洰鐨勫▉鑳侊紝GCC涔熶笉寰椾笉杞笅鏉ワ紝璁╄嚜宸卞彉寰楃◢寰ā鍧楀寲涓浜涳紝鎺ㄥ嚭<a >鎻掍歡鐨勬敮鎸?/a>錛岃孡LVM欏圭洰鍒欓『姘存帹鑸燂紝绱㈡у簾鎺変簡(jiǎn)鍑洪亾鏃跺氨涓鐩翠綔涓虹湅瀹舵湰棰嗙殑LLVM-GCC錛屾敼涓轟竴涓?a >GCC鐨勬彃浠禗ragonEgg</a>銆?Apple涔熶簬Xcode 4.2褰誨簳鎶涘純浜?jiǎn)GCC宸ュ叿閾俱?/p> <p>鑰孋lang鐨勪竴涓噸瑕佽鐢熼」鐩紝鍒欐槸<a >闈?rùn)鎬佸垎鏋愬伐鍏?/a>錛岃兘澶熼氳繃鑷姩鍒嗘姌紼嬪簭鐨勯昏緫錛屽湪緙栬瘧鏃跺氨鎵懼嚭紼嬪簭鍙兘鐨刡ug銆傚湪Mac OS X 10.6鏃訛紝闈?rùn)鎬佸垎鏋愯闆嗘垚榪沊code 3.2錛屽府鍔╃敤鎴鋒煡鎵捐嚜宸辯姱涓嬬殑閿欒銆傚叾涓竴涓姛鑳斤紝灝辨槸鍛婅瘔鐢ㄦ埛鍐呭瓨綆$悊鐨凚ug錛屾瘮濡俛lloc浜?jiǎn)涓涓墿浠跺嵈蹇樿浣跨敤<a >release鍥炴敹</a>銆傝繖宸茬粡鏄竴欏瑰緢鍙曠殑鎶鏈紝鑰孉pple鑷繁涓瀹氫嬌鐢ㄥ畠鏉ュ彂鐜板茍鏀規(guī)Mac OS X鏁翠釜緋葷粺鍚勫眰闈㈢殑闂銆備絾璁稿寮鍙戣呰繕?shù)笉婊…懗鈥斺旀棦鐒朵綘鑳藉彂鐜版垜婕忓啓浜?jiǎn)release錛屼綘涓轟粈涔堜笉鑳藉府鎴戣嚜鍔ㄥ姞涓婂憿錛熶簬鏄疉RC琚?a >闆嗘垚榪汣lang</a>錛屽彂鐢熶簡(jiǎn)鏂囩珷寮澶村紑鍙戣呬滑鐨勬儕鎰曗斺斾粠鏉ユ病鏈変漢瑙夊緱榪欎歡浜嬫槸鍙互鍋氭垚鐨勩?/p> <p>闄LVM鏍稿績(jī)鍜孋lang浠ュ錛孡LVM榪樺寘鎷竴浜涢噸瑕佺殑瀛愰」鐩紝姣斿涓涓?a >鍘熺敓鏀寔璋冭瘯澶氱嚎紼嬬▼搴忕殑璋冭瘯鍣↙LDB</a>錛屽拰涓涓?a >C++鐨勬爣鍑嗗簱libstdc++</a>錛岃繖浜涢」鐩敱浜庢槸浠庨浂閲嶅啓鐨勶紝鍥犳瑕佹瘮鍏堝墠鐨勫緢澶氶」鐩珯寰楁洿楂橈紝姣斿鍏堝墠GNU銆丄pache銆丼TLport絳塁++鏍囧噯搴撳湪璁捐鏃訛紝C++0x鏍囧噯榪樻湭鍏竷錛屾墍浠ュぇ澶氫笉鏀寔榪欎簺鏂版爣鍑嗘垨鑰呴渶瑕侀氳繃涓浜涜偖鑴忕殑鏀瑰姩鎵嶈兘鏀寔錛岃宭ibstdc++鍒欏師鐢熸敮鎸丆++0x銆傝屼笖鍦ㄧ幇浠f灦鏋勪笂錛岃繖浜涢」鐩兘鍔ㄧ敤澶氭牳鎶婁簨鎯呭鐞嗗緱鏇村ソ銆?/p> <p>涓嶅崟鍗曟槸Apple錛岃澶氱殑欏圭洰鍜岀紪紼嬭璦閮戒粠LLVM閲屽彇寰椾簡(jiǎn)鍏抽敭鎬х殑鎶鏈?a >Haskell璇█緙栬瘧鍣℅HC浣跨敤LLVM浣滀負(fù)鍚庣</a>錛屽疄鐜頒簡(jiǎn)楂樿川閲忕殑浠g爜緙栬瘧銆傚緢澶氬姩鎬佽璦瀹炵幇涔熶嬌鐢↙LVM浣滀負(fù)榪愯鏃剁殑緙栬瘧宸ュ叿錛岃緝钁楀悕鐨勬湁Google鐨刄nladen Swallow銆愭敞錛?a >Python瀹炵幇錛屽悗澶姌</a>銆戙丳yPy銆愭敞錛?a >Python瀹炵幇</a>銆戯紝浠ュ強(qiáng)MacRuby銆愭敞錛?a >Ruby瀹炵幇</a>銆戙?a >渚嬪 MacRuby 鍚庣鏀逛負(fù)LLVM鍚庯紝閫熷害涓嶄絾鏈変簡(jiǎn)鏄捐憲鐨勬彁楂?/a>錛屾洿鏄敮鎸丟rand Central Dispatch鏉ュ疄鐜伴珮搴︾殑騫惰榪愯銆傜敱浜嶭LVM楂樺害鐨勬ā鍧楀寲錛屽緢鏂逛究閲嶇敤鍏朵腑鐨勭粍浠舵潵浣滀負(fù)涓涓疄鐜扮殑閲嶈緇勬垚閮ㄥ垎錛屽洜姝ょ被浼肩殑欏圭洰浼?xì)瓒婃潵瓒婂銆?/p> <p>LLVM鐨勬垚鐔熶篃緇欏叾浠栫棝鎭℅CC鐨勫紑鍙戦」鐩嚭浜?jiǎn)涓鍙f伓姘斻傚叾涓渶閲嶈鐨勶紝鎭愭曟槸浠reeBSD涓轟唬琛ㄧ殑BSD紺懼尯銆侭SD紺懼尯鍜孉pple鐨勮仈緋諱竴鍚戝緢绱у瘑錛岃屼笖鐢變簬浠g爜鐩鎬技錛屽緢澶欰pple鐨勬妧鏈Grand Central Dispatch涔熸槸鏈鏃╃Щ妞嶅埌FreeBSD涓娿?a >BSD紺懼尯寰堟棭灝卞湪鎵綠CC鐨勬浛浠e搧</a>錛屾棤濂堝ぇ澶氶兘寰堝樊錛堝Portable C Compiler浜х敓鐨勪唬鐮佽川閲忓拰gcc涓嶈兘鍚屾棩鑰岃錛夈?/p> <p>涓鏂歸潰鏄洜涓轟笉婊℃剰GCC鐨勪唬鐮佸搧璐ㄣ愭敞錛欱SD浠g爜鏁翠綋瑕佹瘮GNU鐨勯珮?shù)竴浜涳紝GNU浠g爜姘告棤浼戞鍦板嚭鐜板悇縐嶄弗閲嶇殑<a >瀹夊叏闂</a>銆戯紝鏇撮噸瑕佺殑鏄崗璁棶棰樸侭SD寮鍙戣呮湁媧佺櫀鐨勫眳澶氾紝澶у閮戒笉鍠滄GPL浠g爜錛屽挨鍏舵槸<a >GPL鍗忚絎笁鐗堝彂甯冩椂錛屽拰FreeBSD鐨勫崗璁敋鑷蟲(chóng)槸鍐茬獊鐨?/a>銆傝繖涔熸鏄負(fù)浠涔團(tuán)reeBSD涓寘鍚殑GNU鐨凜++榪愯搴撹繕鏄?007騫翠互GPLv2鍙戝竷鐨勮佺増鏈紝鑰屼笉鏄敮鎸丆++0x鐨勪絾渚滸PLv3鍗忚鍙戝竷鐨勬柊鐗堟湰銆?鍥犳鍘嗘椂涓ゅ勾鐨勫紑鍙戝悗錛?012騫村垵鍙戝竷鐨凢reeBSD 9.0涓紝<a >Clang琚姞鍏ュ埌FreeBSD鐨勫熀紜緋葷粺</a>銆?浣嗚繖鍙槸絎竴姝ワ紝鍥犱負(fù)FreeBSD涓緷鐒朵嬌鐢℅NU鐨凜++ STL 搴撱丆++榪愯搴撱丟DB璋冭瘯鍣ㄣ乴ibgcc/libgcc_s緙栬瘧搴撻兘鏄拰緙栬瘧鐩稿叧鐨勯噸瑕佸簳灞傛妧鏈紝鍏堝墠鍏ㄨGNU鍨勬柇錛岃岀幇鍦↙LVM瀛愰」鐩甽ldb銆乴ibstdc++銆乧ompiler-rt絳夐」鐩殑鍑虹幇錛屼嬌BSD紺懼尯鏈夋満浼?xì)鍚慓NU璇粹滀笉鈥濓紝鍥犳涓涓妸<a >GNU緇勪歡縐誨嚭FreeBSD鐨勮鍒掕鏋勬兂鍑烘潵</a>錛屽茍瀹屾垚浜?jiǎn)寰堝ぇ涓閮ㄥ垎銆傜紪鍐欒繃銆奀ocoa Programming Developer鈥檚 Handbook銆嬬殑钁楀悕Objective-C鐗涗漢David Chisnall涔熻鍚告敹鍏reeBSD寮鍙戠粍瀹屾垚榪欎釜璁″垝鐨勫叧閿儴鍒嗐?棰勮鍦‵reeBSD 10鍙戝竷鏃訛紝灝嗕笉鍐嶅寘鍚獹NU浠g爜銆?/p> <p>LLVM鍦ㄧ煭鐭簲騫村唴鍙栧緱鐨勫揩閫熷彂灞曞厖鍒嗗弽鏄犱簡(jiǎn)Apple瀵逛簬浜у搧鎶鏈殑榪滆鍜屽鐞嗕簤绔殑鍐沖績(jī)鍜屾墜鑵曪紝騫朵竴璺冩垚涓烘渶棰嗗厛鐨勫紑婧愯蔣浠舵妧鏈傝孋hris Lattner鍦?010騫翠篃璧㈠緱浜?jiǎn)浠栧簲鏈夌殑鑽h獕鈥斺擯rogramming Languages Software Award錛堢▼搴忚璁¤璦杞歡濂栵級(jí)銆?/p> <p> </p> <p> </p> <p>鏈珯璇?</p> <p>    涓鐩村LLVM 鍙?qiáng)Clang鎼炵殑榪瘋糠緋婄硦鐨? 榪欑瘒鏂囩珷鍐欑殑寰堢繑瀹?</p> <p>    寰蔣鍦ㄤ駭鍝佸強(qiáng)騫沖彴涓婄殑寮鏀炬х畝鐩存槸鍧戠埞. 铏界劧寮鍙戝伐鍏蜂笂寰堢粰鍔? 浣嗗叾鑷村懡鐐逛粛鐒舵槸灝侀棴</p> <p>    鑻規(guī)灉綆鍗?楂樻晥, 鐢ㄦ埛鑷充笂鐨勬濇兂鍦ㄥ叾騫沖彴鍙?qiáng)漶斿搧涓?AppleScript,LLVM,Clang)浣撶幇寰楁穻婕撶簿鑷? 鍨冨溇鍥炴敹鐨勬敼榪涗竴璺紓曠紕?浣嗘渶緇堢殑鏂規(guī)璁╂垜浠姌鏈?</p><img src ="http://www.shnenglu.com/sunicdavy/aggbug/163277.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/sunicdavy/" target="_blank">鎴橀瓊灝忕瓚</a> 2011-12-31 16:51 <a href="http://www.shnenglu.com/sunicdavy/archive/2011/12/31/163277.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>Notepad++鎸傛帴ProtoBuffer浠g爜鐢熸垚鍣╬rotochttp://www.shnenglu.com/sunicdavy/archive/2011/12/22/162578.html鎴橀瓊灝忕瓚鎴橀瓊灝忕瓚Thu, 22 Dec 2011 03:00:00 GMThttp://www.shnenglu.com/sunicdavy/archive/2011/12/22/162578.htmlhttp://www.shnenglu.com/sunicdavy/comments/162578.htmlhttp://www.shnenglu.com/sunicdavy/archive/2011/12/22/162578.html#Feedback2http://www.shnenglu.com/sunicdavy/comments/commentRss/162578.htmlhttp://www.shnenglu.com/sunicdavy/services/trackbacks/162578.html鍦ㄦ彃浠惰彍鍗昇ppExec->Execute寮瑰嚭鐨勫璇濇涓緭鍏ヤ互涓嬩俊鎭?/p>

    "protoc.exe"   --cpp_out $(CURRENT_DIRECTORY) --proto_path $(CURRENT_DIRECTORY)  $(FULL_CURRENT_PATH) 

     

    protoc.exe鐨勮礬寰勫彲浠ヨ嚜宸辨寚瀹氭湰鏈虹殑緇濆璺緞

    緙栬瘧鍑虹殑鏂囦歡灝嗚嚜鍔ㄦ斁緗埌proto鏂囦歡鎵鍦ㄧ洰褰?/p>

    ]]>
    璺ㄥ鉤鍙頒慨鏀逛唬鐮佺殑瑙e喅鏂規(guī)硶http://www.shnenglu.com/sunicdavy/archive/2011/12/15/162159.html鎴橀瓊灝忕瓚鎴橀瓊灝忕瓚Thu, 15 Dec 2011 03:02:00 GMThttp://www.shnenglu.com/sunicdavy/archive/2011/12/15/162159.htmlhttp://www.shnenglu.com/sunicdavy/comments/162159.htmlhttp://www.shnenglu.com/sunicdavy/archive/2011/12/15/162159.html#Feedback4http://www.shnenglu.com/sunicdavy/comments/commentRss/162159.htmlhttp://www.shnenglu.com/sunicdavy/services/trackbacks/162159.html鏈漢浣跨敤Windows涓轟富瑕佸紑鍙戝鉤鍙? Linux涓虹紪璇?璋冭瘯騫沖彴

    Linux浣跨敤綾籚C鐨処DE CodeLite

    璁劇疆鏂規(guī)硶:

    1. Settings->Global Editor Preferences->Misc->Encoding and Locale

    2. File font encoding: 閫夋嫨 WINDOWS-936

    3. Locale to use zh_CN: Chinese(Simplified)

    閲嶅惎CodeLite, 鍙湁鏁堥伩鍏峀inux淇敼浜?jiǎn)鏂囦?瀵煎叆Windows鍙樻垚涔辯爜!



    ]]>
    VC9鐨勯緙栬瘧澶碈1859緙栬瘧閿欒瑙e喅鏂規(guī)硶http://www.shnenglu.com/sunicdavy/archive/2011/12/12/161982.html鎴橀瓊灝忕瓚鎴橀瓊灝忕瓚Mon, 12 Dec 2011 11:07:00 GMThttp://www.shnenglu.com/sunicdavy/archive/2011/12/12/161982.htmlhttp://www.shnenglu.com/sunicdavy/comments/161982.htmlhttp://www.shnenglu.com/sunicdavy/archive/2011/12/12/161982.html#Feedback0http://www.shnenglu.com/sunicdavy/comments/commentRss/161982.htmlhttp://www.shnenglu.com/sunicdavy/services/trackbacks/161982.html浠婂ぉ浠巋g鍙栬繃浠g爜鍚庣紪璇戜唬鐮?灞呯劧鍑虹幇浜?jiǎn)C1859鐨勯緙栬瘧澶寸牬鎹熼敊璇?鏌ヨ繃棰勭紪璇戝ご璁劇疆涓庢竻絀轟腑闂存枃浠跺す閲嶈瘯,闂?shù)緷鏃?

    Google鍚庡彂鐜拌В鍐蟲(chóng)柟娉?鎵撹ˉ涓?/p>

    闂璇存槑:http://support.microsoft.com/kb/976656

    琛ヤ竵鍦板潃 http://archive.msdn.microsoft.com/KB976656/Release/ProjectReleases.aspx?ReleaseId=3703

     

    鑰冭檻閮ㄧ講鍒皏s2010, 浣唙s2012鍙堣鍑烘潵浜?榪樻槸蹇嶅繊鍚?/p>

    ]]>
    青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
      <noscript id="pjuwb"></noscript>
            <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
              <dd id="pjuwb"></dd>
              <abbr id="pjuwb"></abbr>
              亚洲欧美另类在线| 欧美h视频在线| 亚洲一区999| 国产精品你懂的在线| 亚洲欧美日韩国产精品| 亚洲一区二区免费视频| 国产精品永久| 男女av一区三区二区色多| 美国成人直播| 99热精品在线观看| 亚洲一区二区三区免费观看| 国产亚洲欧洲| 欧美不卡高清| 欧美视频中文在线看| 校园春色综合网| 久久久久亚洲综合| 一本久道久久综合中文字幕| 亚洲欧美日韩国产| 亚洲大胆视频| 这里是久久伊人| 有坂深雪在线一区| 夜夜嗨一区二区| 激情视频一区| 亚洲精品视频免费观看| 国产一区二区三区四区在线观看 | 国产精品一二| 欧美va亚洲va日韩∨a综合色| 欧美日韩一区二区在线播放| 久久精品亚洲精品| 欧美日本成人| 久久天天躁狠狠躁夜夜av| 欧美精品九九| 老牛嫩草一区二区三区日本| 欧美日韩一区二区在线视频| 免费观看不卡av| 国产精品日韩电影| 亚洲国产精品免费| 欧美日韩一区二区国产| 久久av免费一区| 欧美精品导航| 久久午夜影视| 国产伦精品一区二区三区视频孕妇| 最新国产精品拍自在线播放| 国产一区视频观看| 亚洲视频播放| 日韩性生活视频| 麻豆av一区二区三区| 久久精品99| 国产精品久久久亚洲一区| 亚洲韩国一区二区三区| 激情av一区| 欧美伊人久久大香线蕉综合69| 亚洲伊人久久综合| 欧美三级韩国三级日本三斤| 亚洲高清不卡在线| 亚洲国产精品一区在线观看不卡| 久久成人精品| 久久精品一区中文字幕| 国产欧美日韩综合精品二区| 中文av一区特黄| 亚洲综合好骚| 国产精品久久久久免费a∨ | 香蕉亚洲视频| 国产精品视频不卡| 亚洲一区二区三区视频| 亚洲欧美日韩国产一区| 国产伦精品一区二区三区视频孕妇| 亚洲天堂av在线免费观看| 亚洲一卡久久| 国产精品视频最多的网站| 中日韩高清电影网| 欧美一区深夜视频| 国产亚洲日本欧美韩国| 久久精品盗摄| 欧美国产一区二区| 亚洲精品欧美精品| 欧美日韩一区综合| 一区二区三区日韩欧美精品| 亚洲欧美在线一区二区| 国模吧视频一区| 老司机午夜精品视频在线观看| 亚洲电影下载| 亚洲午夜羞羞片| 国产日产亚洲精品| 久久久久久尹人网香蕉| 欧美激情在线| 亚洲直播在线一区| 国产视频亚洲精品| 麻豆av一区二区三区久久| 一个色综合av| 久久久午夜视频| 日韩天堂av| 国产女人18毛片水18精品| 久久久久久久综合日本| 亚洲精品资源| 久久久人成影片一区二区三区观看| 91久久精品国产91久久性色| 国产精品久久久久久模特| 久久久久久色| 亚洲午夜未删减在线观看| 久久男人av资源网站| 夜夜躁日日躁狠狠久久88av| 国产女主播在线一区二区| 免费观看亚洲视频大全| 亚洲欧美日韩精品在线| 亚洲欧美激情视频| 欧美激情久久久| 一区二区久久久久久| 国产午夜精品麻豆| 欧美日韩国产电影| 欧美呦呦网站| av不卡在线看| 欧美成人免费在线视频| 亚洲欧美日韩天堂| 99国产精品国产精品毛片| 狠狠色狠狠色综合| 国产精品一区二区久久久久| 女生裸体视频一区二区三区| 欧美一区二区视频免费观看| 亚洲美女在线国产| 欧美国产亚洲精品久久久8v| 久久久久久午夜| 性欧美1819性猛交| 亚洲一区二区精品在线| 亚洲精品自在久久| 国产综合色一区二区三区| 国产精品一区二区黑丝| 欧美日韩影院| 欧美天堂亚洲电影院在线播放| 男女激情久久| 毛片基地黄久久久久久天堂| 久久成人在线| 欧美在线|欧美| 午夜精品一区二区三区在线| 亚洲免费小视频| 亚洲午夜精品福利| 中文久久乱码一区二区| 日韩亚洲在线观看| 亚洲精品美女免费| 亚洲精品日产精品乱码不卡| 亚洲国产婷婷综合在线精品 | 亚洲欧洲视频在线| 亚洲福利视频在线| 亚洲国产精品一区在线观看不卡| 在线看片欧美| 亚洲狠狠丁香婷婷综合久久久| 亚洲福利视频在线| 亚洲国产综合在线| 亚洲三级视频| 一本久道久久综合中文字幕| 亚洲永久精品国产| 午夜一区二区三区不卡视频| 午夜亚洲影视| 蜜桃伊人久久| 欧美黄色日本| 亚洲伦理中文字幕| 亚洲网友自拍| 久久国产精品亚洲va麻豆| 久久精品麻豆| 欧美黄色免费| 国产精品sm| 国内精品久久久| 亚洲黄色性网站| 亚洲欧美日韩国产成人精品影院| 久久精品久久99精品久久| 麻豆亚洲精品| 亚洲精品乱码久久久久| 亚洲综合久久久久| 久久亚洲精品网站| 欧美三级黄美女| 国产欧美日韩一区二区三区| 在线免费一区三区| 野花国产精品入口| 久久aⅴ国产欧美74aaa| 欧美高清在线一区二区| 99精品国产高清一区二区 | 亚洲人成网站在线播| 亚洲一区在线免费| 久热精品在线视频| 欧美性做爰猛烈叫床潮| 激情久久综合| 亚洲一区二区三区欧美| 久久综合久色欧美综合狠狠 | 欧美成人一区在线| 欧美无砖砖区免费| 精品成人在线观看| 夜夜嗨av一区二区三区免费区| 久久国产精品第一页| 91久久夜色精品国产网站| 午夜精品影院在线观看| 欧美激情在线播放| 精品av久久707| 亚洲一区二区三区视频播放| 免费欧美视频| 午夜欧美精品| 国产精品福利网站| 亚洲精品一区久久久久久| 久久久五月婷婷| 亚洲欧美综合网| 欧美亚一区二区|