<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                [TOC] ## 格式 看文檔: go tool link —help ``` -ldflags '[pattern=]arg list' -B note: 使用ELF時,添加一個ELF NT_GNU_BUILD_ID note -E entry: 設置entry符號名 -H type: 設置頭類型 -I linker: 指定linker為ELF動態鏈接器 -L directory:添加指定路徑是庫路徑 -R quantum:設置地址舍入限額(默認-1) -T address: 設置文本(text)段地址(默認-1) -V: 打印版本信息并退出 -X definition: 添加形式為importpath.name=value的字符串值定義 -a: 分開顯示 -buildid id:指定id為toolchain 的build id。 -buildmode mode:設置構建模式 -c:轉儲調用圖(dump call graph) -compressdwarf:盡可能壓縮DWARF(默認開啟) -cpuprofile file:將cpu profile信息寫入文件file。 -d:禁用動態可執行文件 -debugtramp int: debug trampolines -dumpdep: 轉儲符號依賴圖(dump symbol dependency graph) -extar string: 歸檔buildmode=c-archive的程序 -extld linker:指定在external mode下使用的鏈接器 -extldflags flags:給external 鏈接器傳參 -f:忽略版本不匹配 -g:禁用go package日期檢查 -h:遇到錯誤時停止 -importcfg file:從file中讀取import 配置信息 -installsuffix suffix:設置包目錄前綴 -k symbol: 設置field跟蹤符號 -libgcc string: 開啟編譯器支持的庫進行內部鏈接(使用”none”進行禁用) -linkmode mode: 設置鏈接模式 -linkshared: 鏈接Go共享庫 -memprofile file:將memory profile信息寫入file -memprofilerate rate: 設置runtime.MemProfileRate為rate值 -msan:開啟MScan接口(enable MSan interface) -n 轉儲符號表(dump symbol table) -o file: 把構建成的目標文件寫入file -pluginpath string:指定插件的全路徑 -r path: 設置ELF動態鏈接器搜索path -race: 開啟競態檢查 -s 禁用符號表 -strictdups int:在讀取目標文件期間進行完整性檢查,檢查重復的符號內容(1=warn 2=err)。 -tmpdir directory: 指定存放定時文件的目錄 -u:拒絕不安全的packages -v:打印鏈接trace -w:禁止生成 DWARF ``` ## 實例 ### -ldflags 編譯優化 ``` go build -ldflags "-w -s" -gcflags "all=-N -l" one.go -w 禁止生成debug信息,注意使用該選項后,無法使用 gdb 進行調試 -s 禁用符號表 -N 禁止編譯優化 -l 禁止內聯,禁止內聯也可以一定程度上減小可執行程序大小 ``` ### 注入編譯參數,如git 信息,go version <details> <summary>libs/bininfo/bininfo.go</summary> ``` package bininfo import ( "fmt" "runtime" ) var ( // 初始化為 unknown,如果編譯時沒有傳入這些值,則為 unknown GitTag = "unknown" GitCommitLog = "unknown" GitStatus = "unknown" BuildTime = "unknown" BuildGoVersion = "unknown" ) // 返回多行格式 func StringifyMultiLine() string { return fmt.Sprintf("GitTag=%s\nGitCommitLog=%s\nGitStatus=%s\nBuildTime=%s\nGoVersion=%s\nruntime=%s/%s\n", GitTag, GitCommitLog, GitStatus, BuildTime, BuildGoVersion, runtime.GOOS, runtime.GOARCH) } ``` </details> <br/> <details> <summary>antbiz.go</summary> ``` func parseFlag() { binInfoFlag := flag.Bool("v", false, "show bin info") flag.Parse() if *binInfoFlag { fmt.Printf("%+v\n", bininfo.StringifyMultiLine()) os.Exit(0) } } ``` </details> <br/> shell ``` GitTag=`git tag | sort -V | tail -n 1` GitCommitLog=`git log --pretty=oneline -n 1` GitCommitLog=${GitCommitLog//\'/\"} GitStatus=`git status -s` BuildTime=`date +'%Y.%m.%d.%H%M%S'` BuildGoVersion=`go version` LDFlags=" \ -X 'antbiz/libs/bininfo.GitTag=${GitTag}' \ -X 'antbiz/libs/bininfo.GitCommitLog=${GitCommitLog}' \ -X 'antbiz/libs/bininfo.GitStatus=${GitStatus}' \ -X 'antbiz/libs/bininfo.BuildTime=${BuildTime}' \ -X 'antbiz/libs/bininfo.BuildGoVersion=${BuildGoVersion}' \ " GOOS=linux go build -v -ldflags "$LDFlags" antbiz.go ``` 運行 ``` GitTag=沒有緩存的項目 GitCommitLog=cb5314722bd436ccd213fd2ef65853eb9c72f9e3 [添加] bininfo 信息 GitStatus= M .gitignore M .gitlab-ci.yml M CHANGELOG BuildTime=2022.09.19.104631 GoVersion=go version go1.18.3 linux/amd64 runtime=linux/amd64 ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看