1 // Copyright 2009 The Go Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 /* 6 Link, typically invoked as “go tool link”, reads the Go archive or object 7 for a package main, along with its dependencies, and combines them 8 into an executable binary. 9 10 # Command Line 11 12 Usage: 13 14 go tool link [flags] main.a 15 16 Flags: 17 18 -B note 19 Add an ELF_NT_GNU_BUILD_ID note when using ELF. 20 The value should start with 0x and be an even number of hex digits. 21 Alternatively, you can pass "gobuildid" in order to derive the 22 GNU build ID from the Go build ID. 23 -E entry 24 Set entry symbol name. 25 -H type 26 Set executable format type. 27 The default format is inferred from GOOS and GOARCH. 28 On Windows, -H windowsgui writes a "GUI binary" instead of a "console binary." 29 -I interpreter 30 Set the ELF dynamic linker to use. 31 -L dir1 -L dir2 32 Search for imported packages in dir1, dir2, etc, 33 after consulting $GOROOT/pkg/$GOOS_$GOARCH. 34 -R quantum 35 Set address rounding quantum. 36 -T address 37 Set the start address of text symbols. 38 -V 39 Print linker version and exit. 40 -X importpath.name=value 41 Set the value of the string variable in importpath named name to value. 42 This is only effective if the variable is declared in the source code either uninitialized 43 or initialized to a constant string expression. -X will not work if the initializer makes 44 a function call or refers to other variables. 45 Note that before Go 1.5 this option took two separate arguments. 46 -asan 47 Link with C/C++ address sanitizer support. 48 -aslr 49 Enable ASLR for buildmode=c-shared on windows (default true). 50 -bindnow 51 Mark a dynamically linked ELF object for immediate function binding (default false). 52 -buildid id 53 Record id as Go toolchain build id. 54 -buildmode mode 55 Set build mode (default exe). 56 -c 57 Dump call graphs. 58 -checklinkname=value 59 If value is 0, all go:linkname directives are permitted. 60 If value is 1 (the default), only a known set of widely-used 61 linknames are permitted. 62 -compressdwarf 63 Compress DWARF if possible (default true). 64 -cpuprofile file 65 Write CPU profile to file. 66 -d 67 Disable generation of dynamic executables. 68 The emitted code is the same in either case; the option 69 controls only whether a dynamic header is included. 70 The dynamic header is on by default, even without any 71 references to dynamic libraries, because many common 72 system tools now assume the presence of the header. 73 -dumpdep 74 Dump symbol dependency graph. 75 -extar ar 76 Set the external archive program (default "ar"). 77 Used only for -buildmode=c-archive. 78 -extld linker 79 Set the external linker (default "clang" or "gcc"). 80 -extldflags flags 81 Set space-separated flags to pass to the external linker. 82 -f 83 Ignore version mismatch in the linked archives. 84 -g 85 Disable Go package data checks. 86 -importcfg file 87 Read import configuration from file. 88 In the file, set packagefile, packageshlib to specify import resolution. 89 -installsuffix suffix 90 Look for packages in $GOROOT/pkg/$GOOS_$GOARCH_suffix 91 instead of $GOROOT/pkg/$GOOS_$GOARCH. 92 -k symbol 93 Set field tracking symbol. Use this flag when GOEXPERIMENT=fieldtrack is set. 94 -libgcc file 95 Set name of compiler support library. 96 This is only used in internal link mode. 97 If not set, default value comes from running the compiler, 98 which may be set by the -extld option. 99 Set to "none" to use no support library. 100 -linkmode mode 101 Set link mode (internal, external, auto). 102 This sets the linking mode as described in cmd/cgo/doc.go. 103 -linkshared 104 Link against installed Go shared libraries (experimental). 105 -memprofile file 106 Write memory profile to file. 107 -memprofilerate rate 108 Set runtime.MemProfileRate to rate. 109 -msan 110 Link with C/C++ memory sanitizer support. 111 -o file 112 Write output to file (default a.out, or a.out.exe on Windows). 113 -pluginpath path 114 The path name used to prefix exported plugin symbols. 115 -r dir1:dir2:... 116 Set the ELF dynamic linker search path. 117 -race 118 Link with race detection libraries. 119 -s 120 Omit the symbol table and debug information. 121 -tmpdir dir 122 Write temporary files to dir. 123 Temporary files are only used in external linking mode. 124 -v 125 Print trace of linker operations. 126 -w 127 Omit the DWARF symbol table. 128 */ 129 package main 130