go clean
執(zhí)行g(shù)o clean命令會刪除掉執(zhí)行其它命令時產(chǎn)生的一些文件和目錄,包括:
在使用go build命令時在當(dāng)前代碼包下生成的與包名同名或者與Go源碼文件同名的可執(zhí)行文件。在Windows下,則是與包名同名或者Go源碼文件同名且?guī)в小?exe”后綴的文件。
在執(zhí)行g(shù)o test命令并加入-c標(biāo)記時在當(dāng)前代碼包下生成的以包名加“.test”后綴為名的文件。在Windows下,則是以包名加“.test.exe”后綴為名的文件。我們會在后面專門介紹go test命令。
如果執(zhí)行g(shù)o clean命令時帶有標(biāo)記-i,則會同時刪除安裝當(dāng)前代碼包時所產(chǎn)生的結(jié)果文件。如果當(dāng)前代碼包中只包含庫源碼文件,則結(jié)果文件指的就是在工作區(qū)的pkg目錄的相應(yīng)目錄下的歸檔文件。如果當(dāng)前代碼包中只包含一個命令源碼文件,則結(jié)果文件指的就是在工作區(qū)的bin目錄下的可執(zhí)行文件。
還有一些目錄和文件是在編譯Go或C源碼文件時留在相應(yīng)目錄中的。包括:“_obj”和“_test”目錄,名稱為“_testmain.go”、“test.out”、“build.out”或“a.out”的文件,名稱以“.5”、“.6”、“.8”、“.a”、“.o”或“.so”為后綴的文件。這些目錄和文件是在執(zhí)行g(shù)o build命令時生成在臨時目錄中的。如果你忘記了這個臨時目錄是怎么回事兒,可以再回顧一下前面關(guān)于go build命令的介紹。臨時目錄的名稱以go-build為前綴。
如果執(zhí)行g(shù)o clean命令時帶有標(biāo)記-r,則還包括當(dāng)前代碼包的所有依賴包的上述目錄和文件。
我們再以goc2p項目的logging為例。為了能夠反復(fù)體現(xiàn)每個標(biāo)記的作用,我們會使用標(biāo)記n。使用標(biāo)記-n會讓命令在執(zhí)行過程中打印用到的系統(tǒng)命令,但不會真正執(zhí)行它們。如果想既打印命令又執(zhí)行命令則需使用標(biāo)記-x。現(xiàn)在我們來試用一下go clean命令:
hc@ubt:~/golang/goc2p/src$ go clean -x logging cd /home/hc/golang/goc2p/src/logging rm -f logging logging.exe logging.test logging.test.exe現(xiàn)在,我們加上標(biāo)記-i:
hc@ubt:~/golang/goc2p/src$ go clean -x -i logging cd /home/hc/golang/goc2p/src/logging rm -f logging logging.exe logging.test logging.test.exe rm -f /home/hc/golang/goc2p/pkg/linux_386/logging.a總結(jié)
- 上一篇: go build
- 下一篇: golang内存对齐