go build
允许使用-o
命令行选项精确定义二进制名称。go install
没有,但它部署了二进制和缓存包编译。
如何使用go install
更改二进制名?或使用go build
进行缓存编译
一个简单的答案是“使用正确的包名进行安装”,但是请告诉我,我缺少的选项在哪里?
发布于 2016-05-26 21:19:08
您可以使用-i
标志进行构建:
-i标志安装依赖于目标的软件包。
go build -i -o binary packagename
发布于 2016-05-27 09:35:13
当您键入go help install
时,您会得到
usage: go install [build flags] [packages]
Install compiles and installs the packages named by the import paths,
along with their dependencies.
For more about the build flags, see 'go help build'.
For more about specifying packages, see 'go help packages'.
See also: go build, go get, go clean.
唯一允许的构建标志是
-a
force rebuilding of packages that are already up-to-date.
-n
print the commands but do not run them.
-p n
the number of programs, such as build commands or
test binaries, that can be run in parallel.
The default is the number of CPUs available, except
on darwin/arm which defaults to 1.
-race
enable data race detection.
Supported only on linux/amd64, freebsd/amd64, darwin/amd64 and windows/amd64.
-msan
enable interoperation with memory sanitizer.
Supported only on linux/amd64,
and only with Clang/LLVM as the host C compiler.
-v
print the names of packages as they are compiled.
-work
print the name of the temporary work directory and
do not delete it when exiting.
-x
print the commands.
-asmflags 'flag list'
arguments to pass on each go tool asm invocation.
-buildmode mode
build mode to use. See 'go help buildmode' for more.
-compiler name
name of compiler to use, as in runtime.Compiler (gccgo or gc).
-gccgoflags 'arg list'
arguments to pass on each gccgo compiler/linker invocation.
-gcflags 'arg list'
arguments to pass on each go tool compile invocation.
-installsuffix suffix
a suffix to use in the name of the package installation directory,
in order to keep output separate from default builds.
If using the -race flag, the install suffix is automatically set to race
or, if set explicitly, has _race appended to it. Likewise for the -msan
flag. Using a -buildmode option that requires non-default compile flags
has a similar effect.
-ldflags 'flag list'
arguments to pass on each go tool link invocation.
-linkshared
link against shared libraries previously created with
-buildmode=shared.
-pkgdir dir
install and load all packages from dir instead of the usual locations.
For example, when building with a non-standard configuration,
use -pkgdir to keep generated packages in a separate location.
-tags 'tag list'
a list of build tags to consider satisfied during the build.
For more information about build tags, see the description of
build constraints in the documentation for the go/build package.
-toolexec 'cmd args'
a program to use to invoke toolchain programs like vet and asm.
For example, instead of running asm, the go command will run
'cmd args /path/to/asm <arguments for asm>'.
其中,-i
和-o
标志不能用于install command
,只能用于build command
。
现在,我看到的更改Go install二进制文件名称的唯一选项是手动mv oldnamebinary newnamebinary
。至少,这个行为是在GO 1.6中的,也许在即将发布的版本中可以改变。
发布于 2020-09-30 03:02:39
我们可以运行以下命令来生成具有所需名称和路径的二进制可执行文件:
如果要下载并安装dep,则
安装
使用
转到构建-o path/binary_name
示例: go build -o ~/go/bin/mybinaryname
https://stackoverflow.com/questions/37457864
复制相似问题