{"id":3988,"date":"2019-11-21T12:35:34","date_gmt":"2019-11-21T04:35:34","guid":{"rendered":"https:\/\/damogame.cn\/wordpress\/?p=3988"},"modified":"2019-11-21T12:35:34","modified_gmt":"2019-11-21T04:35:34","slug":"golang-ldflags-%e7%9a%84%e4%b8%80%e4%b8%aa%e6%8a%80%e5%b7%a7go-version-%e4%bf%a1%e6%81%af%e6%b3%a8%e5%85%a5","status":"publish","type":"post","link":"https:\/\/i007.cc\/wordpress\/archives\/3988","title":{"rendered":"Golang -ldflags \u7684\u4e00\u4e2a\u6280\u5de7go version \u4fe1\u606f\u6ce8\u5165"},"content":{"rendered":"<header class=\"intro-header\">\n<div class=\"container\">\n<div class=\"row\">\n<div class=\"col-lg-8 col-lg-offset-2 col-md-10 col-md-offset-1\">\n<div class=\"post-heading\">\n<p><a href=\"https:\/\/ms2008.github.io\/2018\/10\/08\/golang-build-version\/\">\u539f\u6587\u5730\u5740<\/a><\/p>\n<p>&nbsp;<\/p>\n<p id=\"go-version\" class=\"subheading\"><span style=\"font-size: 16px;\">Posted by ms2008 on October 8, 2018<\/span><\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/header>\n<article>\n<div class=\"container\">\n<div class=\"row\">\n<div class=\"\n                col-lg-8 col-lg-offset-2\n                col-md-10 col-md-offset-1\n                post-container\"><\/p>\n<p>\u6211\u5728\u5f00\u53d1 go \u7684\u9879\u76ee\u65f6\uff0c\u4e60\u60ef\u4e0a\u4f1a\u5728\u7f16\u8bd1\u540e\u7684\u4e8c\u8fdb\u5236\u6587\u4ef6\u4e2d\u6ce8\u5165 git \u7b49\u7248\u672c\u4fe1\u606f\u540e\u518d\u53d1\u5e03\u3002\u4e00\u76f4\u4ee5\u6765\u90fd\u662f\u8fd9\u4e48\u505a\u7684\uff1a<\/p>\n<div class=\"language-go highlighter-rouge\">\n<div class=\"highlight\">\n<pre class=\"highlight\"><code><span class=\"k\">package<\/span> <span class=\"n\">main<\/span>\r\n\r\n<span class=\"k\">import<\/span> <span class=\"p\">(<\/span>\r\n\t<span class=\"s\">\"fmt\"<\/span>\r\n\t<span class=\"s\">\"os\"<\/span>\r\n\t<span class=\"s\">\"runtime\"<\/span>\r\n<span class=\"p\">)<\/span>\r\n\r\n<span class=\"k\">var<\/span> <span class=\"n\">buildstamp<\/span> <span class=\"o\">=<\/span> <span class=\"s\">\"\"<\/span>\r\n<span class=\"k\">var<\/span> <span class=\"n\">githash<\/span> <span class=\"o\">=<\/span> <span class=\"s\">\"\"<\/span>\r\n\r\n<span class=\"k\">func<\/span> <span class=\"n\">main<\/span><span class=\"p\">()<\/span> <span class=\"p\">{<\/span>\r\n\t<span class=\"n\">args<\/span> <span class=\"o\">:=<\/span> <span class=\"n\">os<\/span><span class=\"o\">.<\/span><span class=\"n\">Args<\/span>\r\n\t<span class=\"k\">if<\/span> <span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"n\">args<\/span><span class=\"p\">)<\/span> <span class=\"o\">==<\/span> <span class=\"m\">2<\/span> <span class=\"o\">&amp;&amp;<\/span> <span class=\"p\">(<\/span><span class=\"n\">args<\/span><span class=\"p\">[<\/span><span class=\"m\">1<\/span><span class=\"p\">]<\/span> <span class=\"o\">==<\/span> <span class=\"s\">\"--version\"<\/span> <span class=\"o\">||<\/span> <span class=\"n\">args<\/span><span class=\"p\">[<\/span><span class=\"m\">1<\/span><span class=\"p\">]<\/span> <span class=\"o\">==<\/span> <span class=\"s\">\"-v\"<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\r\n\t\t<span class=\"n\">fmt<\/span><span class=\"o\">.<\/span><span class=\"n\">Printf<\/span><span class=\"p\">(<\/span><span class=\"s\">\"Git Commit Hash: %s<\/span><span class=\"se\">\\n<\/span><span class=\"s\">\"<\/span><span class=\"p\">,<\/span> <span class=\"n\">githash<\/span><span class=\"p\">)<\/span>\r\n\t\t<span class=\"n\">fmt<\/span><span class=\"o\">.<\/span><span class=\"n\">Printf<\/span><span class=\"p\">(<\/span><span class=\"s\">\"UTC Build Time : %s<\/span><span class=\"se\">\\n<\/span><span class=\"s\">\"<\/span><span class=\"p\">,<\/span> <span class=\"n\">buildstamp<\/span><span class=\"p\">)<\/span>\r\n\t\t<span class=\"k\">return<\/span>\r\n\t<span class=\"p\">}<\/span>\r\n<span class=\"p\">}<\/span>\r\n<\/code><\/pre>\n<\/div>\n<\/div>\n<p>\u7136\u540e\u7f16\u8bd1\u7684\u65f6\u5019\uff0c\u901a\u8fc7\u94fe\u63a5\u9009\u9879\u00a0<code class=\"language-plaintext highlighter-rouge\">-X<\/code>\u00a0\u6765\u52a8\u6001\u4f20\u5165\u7248\u672c\u4fe1\u606f\uff1a<\/p>\n<div class=\"language-sh highlighter-rouge\">\n<div class=\"highlight\">\n<pre class=\"highlight\"><code><span class=\"nv\">flags<\/span><span class=\"o\">=<\/span><span class=\"s2\">\"-X main.buildstamp=<\/span><span class=\"sb\">`<\/span><span class=\"nb\">date<\/span> <span class=\"nt\">-u<\/span> <span class=\"s1\">'+%Y-%m-%d_%I:%M:%S%p'<\/span><span class=\"sb\">`<\/span><span class=\"s2\"> -X main.githash=<\/span><span class=\"sb\">`<\/span>git describe <span class=\"nt\">--long<\/span> <span class=\"nt\">--dirty<\/span> <span class=\"nt\">--abbrev<\/span><span class=\"o\">=<\/span>14<span class=\"sb\">`<\/span><span class=\"s2\">\"<\/span>\r\ngo build <span class=\"nt\">-ldflags<\/span> <span class=\"s2\">\"<\/span><span class=\"nv\">$flags<\/span><span class=\"s2\">\"<\/span> <span class=\"nt\">-x<\/span> <span class=\"nt\">-o<\/span> build-version main.go\r\n<\/code><\/pre>\n<\/div>\n<\/div>\n<p>\u8fd9\u6837\u7f16\u8bd1\u540e\u7684\u7a0b\u5e8f\u5c31\u53ef\u4ee5\u901a\u8fc7\u00a0<code class=\"language-plaintext highlighter-rouge\">-v<\/code>\u00a0\u53c2\u6570\u67e5\u770b\u7248\u672c\u4fe1\u606f\u4e86<\/p>\n<div class=\"language-plaintext highlighter-rouge\">\n<div class=\"highlight\">\n<pre class=\"highlight\"><code>[root@KONG:bin (master)]# .\/build-version -v\r\nGit Commit Hash: 1.3-5-ge9edea3e8f986d\r\nUTC Build Time : 2018-09-30_03:40:36AM\r\n[root@KONG:bin (master)]#\r\n<\/code><\/pre>\n<\/div>\n<\/div>\n<p>\u7136\u800c\u5728\u591a\u4eba\u534f\u4f5c\u7684\u9879\u76ee\u65f6\uff0c\u5927\u5bb6\u7684 go \u7248\u672c\u53ef\u80fd\u4f1a\u4e0d\u540c\uff0c\u6240\u4ee5\u6211\u53c8\u5c1d\u8bd5\u5c06\u00a0<code class=\"language-plaintext highlighter-rouge\">go version<\/code>\u00a0\u4fe1\u606f\u690d\u5165\u5230\u7a0b\u5e8f\u4e2d\u3002<\/p>\n<div class=\"language-go highlighter-rouge\">\n<div class=\"highlight\">\n<pre class=\"highlight\"><code><span class=\"k\">package<\/span> <span class=\"n\">main<\/span>\r\n\r\n<span class=\"k\">import<\/span> <span class=\"p\">(<\/span>\r\n\t<span class=\"s\">\"fmt\"<\/span>\r\n\t<span class=\"s\">\"os\"<\/span>\r\n\t<span class=\"s\">\"runtime\"<\/span>\r\n<span class=\"p\">)<\/span>\r\n\r\n<span class=\"k\">var<\/span> <span class=\"n\">buildstamp<\/span> <span class=\"o\">=<\/span> <span class=\"s\">\"\"<\/span>\r\n<span class=\"k\">var<\/span> <span class=\"n\">githash<\/span> <span class=\"o\">=<\/span> <span class=\"s\">\"\"<\/span>\r\n<span class=\"k\">var<\/span> <span class=\"n\">goversion<\/span> <span class=\"o\">=<\/span> <span class=\"s\">\"\"<\/span>\r\n\r\n<span class=\"k\">func<\/span> <span class=\"n\">main<\/span><span class=\"p\">()<\/span> <span class=\"p\">{<\/span>\r\n\t<span class=\"n\">args<\/span> <span class=\"o\">:=<\/span> <span class=\"n\">os<\/span><span class=\"o\">.<\/span><span class=\"n\">Args<\/span>\r\n\t<span class=\"k\">if<\/span> <span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"n\">args<\/span><span class=\"p\">)<\/span> <span class=\"o\">==<\/span> <span class=\"m\">2<\/span> <span class=\"o\">&amp;&amp;<\/span> <span class=\"p\">(<\/span><span class=\"n\">args<\/span><span class=\"p\">[<\/span><span class=\"m\">1<\/span><span class=\"p\">]<\/span> <span class=\"o\">==<\/span> <span class=\"s\">\"--version\"<\/span> <span class=\"o\">||<\/span> <span class=\"n\">args<\/span><span class=\"p\">[<\/span><span class=\"m\">1<\/span><span class=\"p\">]<\/span> <span class=\"o\">==<\/span> <span class=\"s\">\"-v\"<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\r\n\t\t<span class=\"n\">fmt<\/span><span class=\"o\">.<\/span><span class=\"n\">Printf<\/span><span class=\"p\">(<\/span><span class=\"s\">\"Git Commit Hash: %s<\/span><span class=\"se\">\\n<\/span><span class=\"s\">\"<\/span><span class=\"p\">,<\/span> <span class=\"n\">githash<\/span><span class=\"p\">)<\/span>\r\n\t\t<span class=\"n\">fmt<\/span><span class=\"o\">.<\/span><span class=\"n\">Printf<\/span><span class=\"p\">(<\/span><span class=\"s\">\"UTC Build Time : %s<\/span><span class=\"se\">\\n<\/span><span class=\"s\">\"<\/span><span class=\"p\">,<\/span> <span class=\"n\">buildstamp<\/span><span class=\"p\">)<\/span>\r\n\t\t<span class=\"n\">fmt<\/span><span class=\"o\">.<\/span><span class=\"n\">Printf<\/span><span class=\"p\">(<\/span><span class=\"s\">\"Golang Version : %s<\/span><span class=\"se\">\\n<\/span><span class=\"s\">\"<\/span><span class=\"p\">,<\/span> <span class=\"n\">goversion<\/span><span class=\"p\">)<\/span>\r\n\t\t<span class=\"k\">return<\/span>\r\n\t<span class=\"p\">}<\/span>\r\n<span class=\"p\">}<\/span>\r\n<\/code><\/pre>\n<\/div>\n<\/div>\n<p>\u901a\u8fc7\u6dfb\u52a0\u7f16\u8bd1\u53c2\u6570\uff1a<code class=\"language-plaintext highlighter-rouge\">-X main.goversion=$(go version)<\/code>\uff0c\u7136\u800c\u5374\u5931\u8d25\u4e86\u3002\u901a\u8fc7\u9519\u8bef\u8f93\u51fa\u53ef\u4ee5\u5224\u65ad\u662f\u56e0\u4e3a\u00a0<code class=\"language-plaintext highlighter-rouge\">go version<\/code>\u00a0\u7684\u8f93\u51fa\u6709\u7a7a\u683c\uff0c\u5bfc\u81f4\u7f16\u8bd1\u88ab\u6253\u65ad\u3002\u4e4b\u540e\u6211\u53c8\u6539\u4e86\u4e0b\u7f16\u8bd1\u53c2\u6570\uff0c\u6dfb\u52a0\u4e86\u5355\u5f15\u53f7\uff1a<code class=\"language-plaintext highlighter-rouge\">-X main.goversion='$(go version)'<\/code>\uff0c\u9057\u61be\u7684\u662f\uff0c\u7f16\u8bd1\u4f9d\u7136\u65e0\u6cd5\u901a\u8fc7\u3002<\/p>\n<p>\u8bb0\u5f97\u4e4b\u524d\uff0c\u6211\u770b\u5230\u8fc7\u00a0<a href=\"https:\/\/github.com\/CodisLabs\/codis\">codis<\/a>\u00a0\u7684\u6e90\u7801\u662f\u901a\u8fc7\u4e00\u4e2a shell \u811a\u672c\u751f\u6210\u4e00\u4e2a\u989d\u5916\u7684 go package \u6765\u5904\u7406\u7684\uff1a<\/p>\n<div class=\"language-sh highlighter-rouge\">\n<div class=\"highlight\">\n<pre class=\"highlight\"><code><span class=\"nv\">version<\/span><span class=\"o\">=<\/span><span class=\"sb\">`<\/span>git log <span class=\"nt\">--date<\/span><span class=\"o\">=<\/span>iso <span class=\"nt\">--pretty<\/span><span class=\"o\">=<\/span>format:<span class=\"s2\">\"%cd @%H\"<\/span> <span class=\"nt\">-1<\/span><span class=\"sb\">`<\/span>\r\n<span class=\"k\">if<\/span> <span class=\"o\">[<\/span> <span class=\"nv\">$?<\/span> <span class=\"nt\">-ne<\/span> 0 <span class=\"o\">]<\/span><span class=\"p\">;<\/span> <span class=\"k\">then\r\n    <\/span><span class=\"nv\">version<\/span><span class=\"o\">=<\/span><span class=\"s2\">\"unknown version\"<\/span>\r\n<span class=\"k\">fi\r\n\r\n<\/span><span class=\"nv\">compile<\/span><span class=\"o\">=<\/span><span class=\"sb\">`<\/span><span class=\"nb\">date<\/span> +<span class=\"s2\">\"%F %T %z\"<\/span><span class=\"sb\">`<\/span><span class=\"s2\">\" by \"<\/span><span class=\"sb\">`<\/span>go version<span class=\"sb\">`<\/span>\r\n<span class=\"k\">if<\/span> <span class=\"o\">[<\/span> <span class=\"nv\">$?<\/span> <span class=\"nt\">-ne<\/span> 0 <span class=\"o\">]<\/span><span class=\"p\">;<\/span> <span class=\"k\">then\r\n    <\/span><span class=\"nv\">compile<\/span><span class=\"o\">=<\/span><span class=\"s2\">\"unknown datetime\"<\/span>\r\n<span class=\"k\">fi\r\n\r\n<\/span><span class=\"nv\">describe<\/span><span class=\"o\">=<\/span><span class=\"sb\">`<\/span>git describe <span class=\"nt\">--tags<\/span> 2&gt;\/dev\/null<span class=\"sb\">`<\/span>\r\n<span class=\"k\">if<\/span> <span class=\"o\">[<\/span> <span class=\"nv\">$?<\/span> <span class=\"nt\">-eq<\/span> 0 <span class=\"o\">]<\/span><span class=\"p\">;<\/span> <span class=\"k\">then\r\n    <\/span><span class=\"nv\">version<\/span><span class=\"o\">=<\/span><span class=\"s2\">\"<\/span><span class=\"k\">${<\/span><span class=\"nv\">version<\/span><span class=\"k\">}<\/span><span class=\"s2\"> @<\/span><span class=\"k\">${<\/span><span class=\"nv\">describe<\/span><span class=\"k\">}<\/span><span class=\"s2\">\"<\/span>\r\n<span class=\"k\">fi\r\n\r\n<\/span><span class=\"nb\">cat<\/span> <span class=\"o\">&lt;&lt;<\/span> <span class=\"no\">EOF<\/span><span class=\"sh\"> | gofmt &gt; pkg\/utils\/version.go\r\npackage utils\r\nconst (\r\n    Version = \"<\/span><span class=\"nv\">$version<\/span><span class=\"sh\">\"\r\n    Compile = \"<\/span><span class=\"nv\">$compile<\/span><span class=\"sh\">\"\r\n)\r\n<\/span><span class=\"no\">EOF\r\n\r\n<\/span><span class=\"nb\">cat<\/span> <span class=\"o\">&lt;&lt;<\/span> <span class=\"no\">EOF<\/span><span class=\"sh\"> &gt; bin\/version\r\nversion = <\/span><span class=\"nv\">$version<\/span><span class=\"sh\">\r\ncompile = <\/span><span class=\"nv\">$compile<\/span>\r\n<span class=\"no\">EOF\r\n<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<p>\u4f46\u662f\u8fd9\u6837\uff0c\u6bcf\u5f00\u542f\u4e00\u4e2a\u65b0\u9879\u76ee\u90fd\u9700\u8981\u989d\u5916\u7684 shell \u811a\u672c\uff0c\u4e5f\u591f\u9ebb\u70e6\u7684\u3002\u6240\u4ee5\uff0c\u5f88\u957f\u65f6\u95f4\u6211\u90fd\u662f\u8fd9\u4e48\u6765\u5077\u61d2\u7684\uff1a<\/p>\n<div class=\"language-go highlighter-rouge\">\n<div class=\"highlight\">\n<pre class=\"highlight\"><code><span class=\"k\">package<\/span> <span class=\"n\">main<\/span>\r\n\r\n<span class=\"k\">import<\/span> <span class=\"p\">(<\/span>\r\n\t<span class=\"s\">\"fmt\"<\/span>\r\n\t<span class=\"s\">\"os\"<\/span>\r\n\t<span class=\"s\">\"runtime\"<\/span>\r\n<span class=\"p\">)<\/span>\r\n\r\n<span class=\"k\">var<\/span> <span class=\"n\">buildstamp<\/span> <span class=\"o\">=<\/span> <span class=\"s\">\"\"<\/span>\r\n<span class=\"k\">var<\/span> <span class=\"n\">githash<\/span> <span class=\"o\">=<\/span> <span class=\"s\">\"\"<\/span>\r\n<span class=\"k\">var<\/span> <span class=\"n\">goversion<\/span> <span class=\"o\">=<\/span> <span class=\"n\">fmt<\/span><span class=\"o\">.<\/span><span class=\"n\">Sprintf<\/span><span class=\"p\">(<\/span><span class=\"s\">\"%s %s\/%s\"<\/span><span class=\"p\">,<\/span> <span class=\"n\">runtime<\/span><span class=\"o\">.<\/span><span class=\"n\">Version<\/span><span class=\"p\">(),<\/span> <span class=\"n\">runtime<\/span><span class=\"o\">.<\/span><span class=\"n\">GOOS<\/span><span class=\"p\">,<\/span> <span class=\"n\">runtime<\/span><span class=\"o\">.<\/span><span class=\"n\">GOARCH<\/span><span class=\"p\">)<\/span>\r\n\r\n<span class=\"k\">func<\/span> <span class=\"n\">main<\/span><span class=\"p\">()<\/span> <span class=\"p\">{<\/span>\r\n\t<span class=\"n\">args<\/span> <span class=\"o\">:=<\/span> <span class=\"n\">os<\/span><span class=\"o\">.<\/span><span class=\"n\">Args<\/span>\r\n\t<span class=\"k\">if<\/span> <span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"n\">args<\/span><span class=\"p\">)<\/span> <span class=\"o\">==<\/span> <span class=\"m\">2<\/span> <span class=\"o\">&amp;&amp;<\/span> <span class=\"p\">(<\/span><span class=\"n\">args<\/span><span class=\"p\">[<\/span><span class=\"m\">1<\/span><span class=\"p\">]<\/span> <span class=\"o\">==<\/span> <span class=\"s\">\"--version\"<\/span> <span class=\"o\">||<\/span> <span class=\"n\">args<\/span><span class=\"p\">[<\/span><span class=\"m\">1<\/span><span class=\"p\">]<\/span> <span class=\"o\">==<\/span> <span class=\"s\">\"-v\"<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\r\n\t\t<span class=\"n\">fmt<\/span><span class=\"o\">.<\/span><span class=\"n\">Printf<\/span><span class=\"p\">(<\/span><span class=\"s\">\"Git Commit Hash: %s<\/span><span class=\"se\">\\n<\/span><span class=\"s\">\"<\/span><span class=\"p\">,<\/span> <span class=\"n\">githash<\/span><span class=\"p\">)<\/span>\r\n\t\t<span class=\"n\">fmt<\/span><span class=\"o\">.<\/span><span class=\"n\">Printf<\/span><span class=\"p\">(<\/span><span class=\"s\">\"UTC Build Time : %s<\/span><span class=\"se\">\\n<\/span><span class=\"s\">\"<\/span><span class=\"p\">,<\/span> <span class=\"n\">buildstamp<\/span><span class=\"p\">)<\/span>\r\n\t\t<span class=\"n\">fmt<\/span><span class=\"o\">.<\/span><span class=\"n\">Printf<\/span><span class=\"p\">(<\/span><span class=\"s\">\"Golang Version : %s<\/span><span class=\"se\">\\n<\/span><span class=\"s\">\"<\/span><span class=\"p\">,<\/span> <span class=\"n\">goversion<\/span><span class=\"p\">)<\/span>\r\n\t\t<span class=\"k\">return<\/span>\r\n\t<span class=\"p\">}<\/span>\r\n<span class=\"p\">}<\/span>\r\n<\/code><\/pre>\n<\/div>\n<\/div>\n<p>\u4f46\u662f\u8fd9\u6837\u7684\u8bdd\uff0c\u4e5f\u6709\u4e00\u4e2a\u95ee\u9898\uff1a<strong>\u5c31\u662f\u5728\u4ea4\u53c9\u7f16\u8bd1\u7684\u65f6\u5019\u65e0\u6cd5\u6b63\u786e\u53cd\u5e94\u51fa go \u7684\u7248\u672c<\/strong>\u3002\u6bd4\u5982\uff0c\u4f60\u662f\u5728 OSX \u4e0b\u7f16\u8bd1 linux \u7684\u53ef\u6267\u884c\u7a0b\u5e8f\uff0c\u8fd9\u65f6\u5019\u4f60\u901a\u8fc7\u00a0<code class=\"language-plaintext highlighter-rouge\">-v<\/code>\u00a0\u53c2\u6570\u67e5\u770b\u663e\u793a\u7684\u4e5f\u662f linux \u5e73\u53f0\uff0c\u800c\u4e0d\u662f\u671f\u5f85\u7684 darwin \u5e73\u53f0\u3002<\/p>\n<p>\u4e0d\u8fc7\uff0c\u8fd1\u65e5\u6211\u5728\u95f2\u901b go nuts \u65f6\uff0c\u770b\u5230\u4e00\u4e2a\u8d34\u5b50\uff1a<a href=\"https:\/\/groups.google.com\/forum\/#!topic\/golang-nuts\/aNDB4FrmEiA\">v1.5 -ldflags -X change breaks when string has a space<\/a>\uff0c\u8c08\u5230\u4e86\u8fd9\u4e2a\u6280\u5de7\uff1a<strong>\u5982\u679c\u8981\u8d4b\u503c\u7684\u53d8\u91cf\u5305\u542b\u7a7a\u683c\uff0c\u9700\u8981\u7528\u5f15\u53f7\u5c06 -X \u540e\u9762\u7684\u53d8\u91cf\u548c\u503c\u90fd\u6269\u8d77\u6765<\/strong>\u3002\u539f\u6765\u5982\u6b64\uff0c\u518d\u6b21 build \u4e00\u4e0b\uff0c\u8fd8\u771f\u597d\u7528\uff1a<\/p>\n<div class=\"language-sh highlighter-rouge\">\n<div class=\"highlight\">\n<pre class=\"highlight\"><code><span class=\"nv\">flags<\/span><span class=\"o\">=<\/span><span class=\"s2\">\"-X 'main.goversion=<\/span><span class=\"si\">$(<\/span>go version<span class=\"si\">)<\/span><span class=\"s2\">'\"<\/span>\r\ngo build <span class=\"nt\">-ldflags<\/span> <span class=\"s2\">\"<\/span><span class=\"nv\">$flags<\/span><span class=\"s2\">\"<\/span> <span class=\"nt\">-x<\/span> <span class=\"nt\">-o<\/span> build-version main.go\r\n<\/code><\/pre>\n<\/div>\n<\/div>\n<p>\u5b50\u66f0\uff1a\u4e09\u4eba\u884c\uff0c\u5fc5\u6709\u6211\u5e08\u7109\u3002\u770b\u6765\uff0c\u793e\u533a\u8fd8\u5f97\u901b\u8d77\u6765\u5440~~<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/article>\n","protected":false},"excerpt":{"rendered":"<p>\u539f\u6587\u5730\u5740 &nbsp; Posted b<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"colormag_page_container_layout":"default_layout","colormag_page_sidebar_layout":"default_layout","footnotes":""},"categories":[],"tags":[122],"class_list":["post-3988","post","type-post","status-publish","format-standard","hentry","tag-06-godocker"],"_links":{"self":[{"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/posts\/3988","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/comments?post=3988"}],"version-history":[{"count":0,"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/posts\/3988\/revisions"}],"wp:attachment":[{"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/media?parent=3988"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/categories?post=3988"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/tags?post=3988"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}