golang在编译的时候,可以传入一些参数,其中有 -ldflags 参数,这个参数的官方解释如下:
-ldflags 'flag list'
arguments to pass on each 5l, 6l, 8l, or 9l linker invocation.
意思大概是:这个参数将影响链接这个过程。
对于链接所涉及的一些相关概念,请参考这篇文章静态链接,动态链接,静态库,共享库这些概念的详解
第一个用法
ldflags用于链接过程,这个具体的用法,这篇文章写得非常到味,比我写得好,我就不再写了,大家可以到这里查看,也谈Go的可移植性。
第二个用法
ldflags在编译golang的时候,可以传入一些值用来配置golang的应用。这个用法简单,可以查看 golang在编译时用ldflags设置变量的值
第二个用法目前大多数用于应用程序的版本信息,本人认为第二个用法在应用程序假如有配置文件的话,那就没有太多意义了,完全可以用配置文件来替代这个功能。但是假如只是一个纯净的应用程序,没有配置文件的话,这个用法相当有意思了。