RAD Studio (Common)
C++ Linker

ProjectOptionsC++ Linker 

Use this dialog box to set C++ Linker options.

Build Configuration options 
Build Configuration 
Displays the name of the current build configuration associated with the options on this page. There are three default build configurations: Base, Debug, and Release.  
Apply Options... 
Displays the Apply Option Set dialog box to apply the options in a named option set to the current configuration.  


Common items 
Value from <parent configuration or option set> 
Indicates the value in the parent build configuration or referenced option set. If you change this value here, the change will potentially affect the Base configuration (that is, if you click OK on the Project->Options dialog and subsequently build your project).  
Indicates whether inheritance (from a parent configuration) is on or off for the option. To control inheritance, click the option, and then open the associated generic list dialog box by clicking the Ellipsis that appears. The Inherit values from parent configuration checkbox controls whether your current build configuration inherits the values listed in the lower box of the generic list dialog box.  
<any item in red print> 
Indicates that this option has secondary options available. To view the secondary options, click the + sign in front of the option in red.  
<any item in boldface print> 
Indicates that the value of this option has been changed from the value in the parent configuration or referenced option set.  
Down Arrow Pop-Up Button 
Appears after you click an option that has a set of available choices (such as True, False). Click Down Arrow to display and choose the value you want from the available choices.  
Ellipsis Pop-Up Button 
Appears after you click an option whose value is either of the following:
  • An ordered list that you enter and then arrange in the desired order, such as a list of defines or search paths. Clicking Ellipsisinvokes the generic ordered list dialog box.
  • A single filename, directory or folder name. Clicking Ellipsis invokes the standard Open file or Browse for folder dialog box.


Linking options 
Disable incremental link (-Gn) 
Suppresses the generation of linker state files, disabling incremental linking. If you use -Gn, subsequent links take just as long as the first one. Default = False  
Display time spent on link (-t) 
Include in the linker output the amount of time required to complete the linking. Default = False  
Dynamic RTL 
Controls whether C RTL links statically or dynamically with runtime library (cc3290.dll). Default = True  
Full debug information (-v) 
Includes information in the output file needed to debug your application with the C++Builder integrated debugger or Turbo Debugger.
On the command line this option causes the linker to include debugging information in the executable file for all object modules that contain debugging information. You can use the -v+ and -v- options to selectively enable or disable debugging information on a module-by-module basis (but not on the same command line where you use -v). For example, the following command includes debugging information for modules mod2 and mod3, but not for mod1 and mod4:
ILINK32 mod1 -v+ mod2 mod3 -v- mod4
Default = False  
Generate .drc file (-GD) 
ILink32 generates Delphi compatible .RC files (drc files). The drc file has the same name as the executable file and is emitted to the same directory as the executable file. Default = False  
Keep output files (-Gk) 
Tells the linker to keep output files that would otherwise be deleted on errors. The linker has been changed to delete its output file (EXE/DLL) if there are errors in the link. The old behavior was to leave these files and not delete them. Default = False  
Specify maximum number of errors (-Enn) 
Sets the specified number of errors encountered (nn) before the link is aborted. Default = 0  


Advanced options 
Additional options 
Enter any additional linker options you want.  
Case sensitive linking (-c) 
The linker differentiates between upper and lowercase characters in public and external symbols. Normally, this option should be set, since C and C++ are both case-sensitive languages. Default = True  
Clear state before linking (-C) 
Deletes the existing incremental linker state files and then recreates these files and continues with the link. This option allows you to refresh the state files. Default = False  
Delay load .DLLs (-d) 
Specifies DLLs that are to be delay loaded. Delayed loading of DLLs is useful for DLLs that are used very infrequently by an application, but might have high startup costs. DLLs that have been delay loaded are not loaded and initialized until an entry point in the DLL is actually called. There is accompanying RTL support for delayed load DLLs that the user can hook into to handle errors on loading and to supplant the delayed load system, if so desired. See the description of the Ellipsis pop-up button, above.  
Do image checksum (-Gz) 
Calculates the checksum of the target and places the result in the target’s PE header. This is used for NT Kernel mode drivers and system DLLs. Default = False  
Fast TLS (-Gt) 
Allocate TLS (thread-local storage) from Windows instead of using the mechanism to share TLS. Default = False  
File alignment (-Af) 
Specifies page alignment for code and data within the executable file. The linker uses the file alignment value when it writes the various objects and sections (such as code and data) to the file. For example, if you use the default value of 0x200, the linker stores the section of the image on 512-byte boundaries within the executable file.
When using this option, you must specify a file alignment value that is a power of 2, with the smallest value being 16.
The old style of this option (/A:dd) is still supported for backward compatibility. With this option, the decimal number dd is multiplied by the power of 2 to calculate the file alignment value.
The command-line version of this option (/Afxxxx) accepts either decimal or hexadecimal numbers as the file alignment value. The value setting is 512 (0x200).
Default = 0x200  
Object alignment (-Ao) 
The linker uses the object alignment value to determine the virtual addresses of the various objects and sections (such as code and data) in your application. For example, if you specify an object alignment value of 8192, the linker aligns the virtual addresses of the sections in the image on 8192-byte (0x2000) boundaries.
When using this option, you must specify an object alignment value that is a power of 2, with the smallest value being 4096 (0x1000) , the default.
The command-line version of this option (/Ao) accepts either decimal or hexadecimal numbers as the object alignment value.
Default = 0x1000  
Replace resources (-Rr) 
Add and/or replace resources without stripping away the existing resources. Default = False  
Verbose linking (-r) 
Sets the verbose option for rlink32, and detailed information is emitted during the resource link. Default = False  


General option 
Saves the current settings as the default for each new project.  
Copyright(C) 2009 Embarcadero Technologies, Inc. All Rights Reserved.
What do you think about this topic? Send feedback!