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 -D address 22 Set data segment address. 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 text segment address. 38 -V 39 Print the linker version and exit. 40 -X importpath.name=value 41 Set the value of the string variable in importpath named name to value. 42 Note that before Go 1.5 this option took two separate arguments. 43 Now it takes one argument split on the first = sign. 44 -buildmode mode 45 Set build mode (default exe). 46 -cpuprofile file 47 Write CPU profile to file. 48 -d 49 Disable generation of dynamic executables. 50 The emitted code is the same in either case; the option 51 controls only whether a dynamic header is included. 52 The dynamic header is on by default, even without any 53 references to dynamic libraries, because many common 54 system tools now assume the presence of the header. 55 -extld linker 56 Set the external linker (default "clang" or "gcc"). 57 -extldflags flags 58 Set space-separated flags to pass to the external linker. 59 -f 60 Ignore version mismatch in the linked archives. 61 -g 62 Disable Go package data checks. 63 -installsuffix suffix 64 Look for packages in $GOROOT/pkg/$GOOS_$GOARCH_suffix 65 instead of $GOROOT/pkg/$GOOS_$GOARCH. 66 -linkmode mode 67 Set link mode (internal, external, auto). 68 This sets the linking mode as described in cmd/cgo/doc.go. 69 -linkshared 70 Link against installed Go shared libraries (experimental). 71 -memprofile file 72 Write memory profile to file. 73 -memprofilerate rate 74 Set runtime.MemProfileRate to rate. 75 -o file 76 Write output to file (default a.out, or a.out.exe on Windows). 77 -r dir1:dir2:... 78 Set the ELF dynamic linker search path. 79 -race 80 Link with race detection libraries. 81 -s 82 Omit the symbol table and debug information. 83 -shared 84 Generated shared object (implies -linkmode external; experimental). 85 -tmpdir dir 86 Write temporary files to dir. 87 Temporary files are only used in external linking mode. 88 -v 89 Print trace of linker operations. 90 -w 91 Omit the DWARF symbol table. 92 */ 93 package main 94