這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。
一鍵編譯go檔案命令.bat , 請建立 一鍵編譯go檔案命令.bat 檔案,放到你的xxx.go檔案目錄下
( 歡迎加入go語言群: 218160862 , 群內有實踐)
@echo off:: 擷取目錄的名字, 用於start 目錄名字.exeset dirName=goto getDirName:: 刪進程檔案taskkill /f /fi "IMAGENAME eq %dirName%.exe" > nul:: 啟動這2個服務以避免exe檔案延遲1分鐘才能刪除 Application Experience和 Program Compatibility Assistant Servicefor /f "skip=3 tokens=4" %%i in ('sc query AeLookupSvc') do set "zt=%%i" if /i "%zt%"=="RUNNING" ( echo . ) else ( net start "AeLookupSvc" )for /f "skip=3 tokens=4" %%i in ('sc query PcaSvc') do set "zt=%%i" if /i "%zt%"=="RUNNING" ( echo . ) else ( net start "PcaSvc" ):: 刪除舊的exe編譯檔案if exist %dirName%.exe ( del %dirName%.exe ) > nul:: 執行build_go_app子程式:修改gopath環境變數、編譯go程式為exe、啟動編譯的exe程式goto build_go_app :: 不需要進入: %_curDisk% & ( cd %_curPath% ) :: 擷取目錄的名字:getDirName set "lj=%~p0" set "lj=%lj:\= %" for %%a in (%lj%) do set wjj=%%a set dirName=%wjj%:: 編譯go程式:build_go_app echo. echo 【開始編譯go程式為exe可執行檔】: :: 執行go編譯 go build -ldflags=" -H windowsgui " -gcflags=" -N -l " echo 已執行編譯命令: go build -ldflags=" -H windowsgui " -gcflags=" -N -l " :: 刪除偵錯符號:go build -ldflags “-s -w” -s: 去掉符號資訊。 -w: 去掉DWARF調試資訊。 :: 關閉內聯最佳化:go build -gcflags “-N -l” echo. echo. echo. :: 啟動編譯的程式. 成功、延時2秒消失; 失敗、不消失 暫停 if exist %dirName%.exe ( ( choice /t 1 /d y /n >nul ) | ( echo ok, 編譯成功! 正在開啟程式 ) & ( start %dirName%.exe ) ) else ( echo 編譯失敗!| pause )echo. echo.
( 歡迎加入go語言群: 218160862 , 群內有實踐)