C++ Linker Output
Go Up to C++ Linker
Project > Options > Building > C++ Linker > Output
Use this dialog box to set C++ linker output options.
Options | Description |
---|---|
Target, Apply, Save |
See Target Options. |
Common items |
C++ Linker Output options supported on all platforms: Most of the options on this page are shared among all the C++ linkers and thus are supported on all the Supported Target Platforms. There are two exceptions:
- Image flags (supported only on Windows platforms)
- Section flags (supported only on Windows platforms)
Linker switches that are given are for both ILINK32 and ILINK64.
Map File options | Description |
---|---|
Base address |
Specifies image base address for your executable or DLL. The load address of the first object in the application or library is set to the number you specify, if possible, and all successive objects are aligned on 64K linear address boundaries; internal fixups are ignored. However, if the module cannot be loaded using the specified address, the operating system reverts to its default setting and applies internal fixups. Preserve relocation table. Specify value in hex or decimal on 0x200 or 512 byte boundaries. |
Heap size, maximum |
Specifies the size of the reserved heap in hexadecimal or decimal. The minimum allowable value for this field is 0. Specifying the reserved heap size here overrides any HEAPSIZE setting in a module definition file. Default value = 0x00100000 |
Heap size, minimum |
Specifies the size of the committed heap in hexadecimal or decimal. The minimum allowable value for this field is 0 and any value specified must be equal to or less than the Heap size, maximum option. Specifying the committed heap size here overrides any HEAPSIZE setting in a module definition file. Default value = 0x00001000 Supported only on 32-bit Windows and 64-bit Windows platforms. |
Image comment string |
Specifies comments to be inserted into the image (.exe, .dll, .bpl, and so forth) directly after the object table in the PE file header. These comments can be read out of the image with TDump or similar tools. |
Image description |
Saves the specified description in the PE image. |
Image flags |
Allows you to set several flags on the image. The following flags are supported:
Default value = None Supported only on 32-bit Windows and 64-bit Windows platforms. The |
Map file type |
Map file with segments Includes only segments in the map file. Happens when none of The segments listing has a line for each segment showing the segment starting address, segment length, segment name, and the segment class. The public symbols are broken down into two lists, the first showing the symbols in sorted alphabetically, the second showing the symbols in increasing address order. Symbols with absolute addresses are tagged Abs. A list of public symbols is useful when debugging: many debuggers use public symbols, which lets you refer to symbolic addresses while debugging.
C (combination)
B (big)
With the Segments options set, public symbols with no references are flagged idle. An idle symbol is a publicly defined symbol in a module that was not referenced by an EXTDEF record or by any other module included in the link. For example, this fragment from the public symbol section of a map file indicates that symbols Symbol1 and Symbol3 are not referenced by the image being linked: 0002:00000874 Idle Symbol1 0002:00000CE4 Symbol2 0002:000000E7 Idle Symbol3 Do not generate map (-x) Turns off the creation of the default linker map file. By default, the linker generates a map file with that contains general segment information including a list of segments, the program start address, and any warning or error messages produced during the link. There is no switch for this setting. Use the Do not generate map option to suppress the creation of this default map file. |
Map with mangled names |
Prints the mangled C++ identifiers in the map file, not the full name. This can help you identify how names are mangled (mangled names are needed as input by some utilities). |
OS version |
Specifies the Windows version ID on which you expect your application to be run. The linker sets the Subsystem version field in the .EXE header to the number you specify in the input box. You can also set the Windows version ID in the SUBSYSTEM portion of the module definition file (.DEF file) However, any version setting you specify in the IDE or on the command line overrides the setting in the .DEF file. When you use the OS version option, the linker sets the Windows version ID to the specified number. For example, if you specify |
Section flags |
The Section flags option lets you add flags to a named image section. This option adds the flags to the existing flags for a given section. There is no way to remove default flags from a section. Allowable flags are: |
Stack size, maximum |
Specifies the size of the reserved stack in hexadecimal or decimal. The minimum allowable value for this field is 4K (0x1000). |
Stack size, minimum |
Specifies the size of the committed stack in hexadecimal or decimal. The minimum allowable value for this field is 4K (0x1000) and any value specified must be equal to or less than the Stack size, maximum option. |
Subsystem version |
Specifies the Windows version ID on which you expect your application to be run. The linker sets the Subsystem version field in the .EXE header to the number you specify in the input box. |
User version |
Specifies the version ID of your executable. The linker sets the user version field in the executable's header to the number you specify. |