Created
June 24, 2022 09:33
-
-
Save niya3/af330ffe5fccb74052904eefae586ec7 to your computer and use it in GitHub Desktop.
golang 1.18.3 ldflags
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
$ go version | |
go1.18.3 linux/amd64 | |
$ go doc cmd/link [12:03:16] | |
Link, typically invoked as “go tool link”, reads the Go archive or object | |
for a package main, along with its dependencies, and combines them into an | |
executable binary. | |
Command Line | |
Usage: | |
go tool link [flags] main.a | |
Flags: | |
-B note | |
Add an ELF_NT_GNU_BUILD_ID note when using ELF. | |
The value should start with 0x and be an even number of hex digits. | |
-D address | |
Set data segment address. | |
-E entry | |
Set entry symbol name. | |
-H type | |
Set executable format type. | |
The default format is inferred from GOOS and GOARCH. | |
On Windows, -H windowsgui writes a "GUI binary" instead of a "console binary." | |
-I interpreter | |
Set the ELF dynamic linker to use. | |
-L dir1 -L dir2 | |
Search for imported packages in dir1, dir2, etc, | |
after consulting $GOROOT/pkg/$GOOS_$GOARCH. | |
-R quantum | |
Set address rounding quantum. | |
-T address | |
Set text segment address. | |
-V | |
Print linker version and exit. | |
-X importpath.name=value | |
Set the value of the string variable in importpath named name to value. | |
This is only effective if the variable is declared in the source code either uninitialized | |
or initialized to a constant string expression. -X will not work if the initializer makes | |
a function call or refers to other variables. | |
Note that before Go 1.5 this option took two separate arguments. | |
-a | |
Disassemble output. | |
-asan | |
Link with C/C++ address sanitizer support. | |
-buildid id | |
Record id as Go toolchain build id. | |
-buildmode mode | |
Set build mode (default exe). | |
-c | |
Dump call graphs. | |
-compressdwarf | |
Compress DWARF if possible (default true). | |
-cpuprofile file | |
Write CPU profile to file. | |
-d | |
Disable generation of dynamic executables. | |
The emitted code is the same in either case; the option | |
controls only whether a dynamic header is included. | |
The dynamic header is on by default, even without any | |
references to dynamic libraries, because many common | |
system tools now assume the presence of the header. | |
-debugtramp int | |
Debug trampolines. | |
-dumpdep | |
Dump symbol dependency graph. | |
-extar ar | |
Set the external archive program (default "ar"). | |
Used only for -buildmode=c-archive. | |
-extld linker | |
Set the external linker (default "clang" or "gcc"). | |
-extldflags flags | |
Set space-separated flags to pass to the external linker. | |
-f | |
Ignore version mismatch in the linked archives. | |
-g | |
Disable Go package data checks. | |
-importcfg file | |
Read import configuration from file. | |
In the file, set packagefile, packageshlib to specify import resolution. | |
-installsuffix suffix | |
Look for packages in $GOROOT/pkg/$GOOS_$GOARCH_suffix | |
instead of $GOROOT/pkg/$GOOS_$GOARCH. | |
-k symbol | |
Set field tracking symbol. Use this flag when GOEXPERIMENT=fieldtrack is set. | |
-libgcc file | |
Set name of compiler support library. | |
This is only used in internal link mode. | |
If not set, default value comes from running the compiler, | |
which may be set by the -extld option. | |
Set to "none" to use no support library. | |
-linkmode mode | |
Set link mode (internal, external, auto). | |
This sets the linking mode as described in cmd/cgo/doc.go. | |
-linkshared | |
Link against installed Go shared libraries (experimental). | |
-memprofile file | |
Write memory profile to file. | |
-memprofilerate rate | |
Set runtime.MemProfileRate to rate. | |
-msan | |
Link with C/C++ memory sanitizer support. | |
-n | |
Dump symbol table. | |
-o file | |
Write output to file (default a.out, or a.out.exe on Windows). | |
-pluginpath path | |
The path name used to prefix exported plugin symbols. | |
-r dir1:dir2:... | |
Set the ELF dynamic linker search path. | |
-race | |
Link with race detection libraries. | |
-s | |
Omit the symbol table and debug information. | |
-shared | |
Generated shared object (implies -linkmode external; experimental). | |
-tmpdir dir | |
Write temporary files to dir. | |
Temporary files are only used in external linking mode. | |
-u | |
Reject unsafe packages. | |
-v | |
Print trace of linker operations. | |
-w | |
Omit the DWARF symbol table. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment