═══ 1. Special Notices ═══ References in this help to IBM products, programs, or services do not imply that IBM intends to make these available in all countries in which IBM operates. Any reference to an IBM licensed program in this help is not intended to state or imply that only IBM's licensed program may be used. Any functionally equivalent product, program, or service that does not infringe any of IBM's intellectual property rights may be used instead of the IBM product, program, or service. Evaluation and verification of operation in conjunction with other products, except those expressly designated by IBM, is the user's responsibility. IBM may have patents or pending patent applications covering subject matter in this help. The furnishing of this help does not give you any license to these patents. The following terms are trademarks of the IBM corporation in the United States and/or other countries: BookManager C/2 C Set/2 C Set ++ Common User Access CUA IBM LibraryReader Open Class Operating System/2 OS/2 OS/2 Warp Personal System/2 PS/2 Presentation Manager Systems Application Architecture SAA VisualAge WorkFrame WorkPlace Shell System Object Model SOM Windows is a trademark of Microsoft Corporation. Pentium is a trademark of Intel Corporation. Other company, product, and service names, which may be denoted by a double asterisk (**), may be trademarks of others. This publication contains examples of data and reports used in daily business operations. To illustrate them as completely as possible, the examples include the names of individuals, companies, brands, and products. All of these names are fictitious and any similarity to the names and addresses used by an actual business enterprise is entirely coincidental. Licensees of this program who wish to have information about it for the purpose of enabling: (i) the exchange of information between independent created programs and other programs (including this one) and (ii) the mutual use of the information which has been exchanged, should contact IBM Canada Ltd., Department 071, 1150 Eglinton Ave E., North York, ONT Canada M3C 1H7. Such information may be available, subject to appropriate terms and conditions, including in some cases, payment of a fee. ═══ 2. Link Options ═══ Use this notebook to select the group of link options you want to change. The options you specify are associated with the project you are currently working on. You can set any of 4 option categories:  Generation  Processing  File names  Templates Some options have already been set to their default settings. You can change the default settings by clicking on them and selecting your preferred settings. See Command-line equivalents for a mapping between command-line options and options set in WorkFrame. ═══ 3. Command-line equivalents ═══ This table lists linker options in their positive forms only (for example, /DEBUG appears, but /NODEBUG does not). In most cases, a single checkbox in the WorkFrame notebook sets either the positive or negative form of the option (for example, select the checkbox Don't display the logo to set the option /NOLOGO, and deselect the checkbox to set /LOGO). OPTION NOTEBOOK TAB PAGE CONTROL DESCRIPTION /ALIGNMENT Generation 2 Segment Alignment /BASE Generation 1 Module load address /BROWSE Generation 1 Include browse information /DBGPACK Generation 1 Pack debug information /DEBUG Generation 1 Include debug information /DEFAULTLIB Processing 1 Ignore default libraries /EXEPACK Generation 2 Compression /EXTDICTIONARY Processing 1 Search the extended library /IGNORECASE Processing 1 Ignore case /INFORMATION Processing 1 Display link-time information /LINENUMBERS Processing 1 Generate map file with line numbers /LOGO Processing 1 Don't display the logo /MAP File names 1 Map file name /MAP Processing 1 Generate a map file /OPTFUNC Generation 2 Remove unreferenced functions /OUT File names 1 Generated target file name /PACKCODE Generation 2 Pack the code segments /PACKDATA Generation 2 Pack the data segments /PMTYPE Generation 1 Application type /SEGMENTS Generation 2 Maximum number of segments /STACK Generation 1 Stack size: ═══ 4. Generation ═══ Use the Generation pages to control the format and content of the executable file produced by the linker:  Include debug information (/DE[BUG])  Pack debug information (/DB[GPACK])  Include browse information (/BR[OWSE])  Stack size (/ST[ACK]:number)  Module load address (/BAS[E]:number)  Application type (/PM[TYPE]:parameter)  Compression (/E[XEPACK][1|2])  Pack the code segments (/P[ACKCODE][:number])  Pack the data segments (/PACKD[ATA][:number])  Maximum number of segments (/SE[GMENTS]:number)  Segment alignment (/A[LIGNMENT]:number).  Remove unreferenced functions (/OPTF[UNC]). ═══ 4.1. Include debug information ═══ If you are going to debug your application, select this option to copy the debug information from the objects into the module. The corresponding command line option is /DE[BUG]. ═══ 4.2. Pack debug information ═══ If you are going to debug your application, select this option to pack the debug information by eliminating redundant debug type information that occurs in multiple object modules. The corresponding command line option is /DB[GPACK]. ═══ 4.3. Include browse information ═══ If you are going to browse your application, select this option to include the browse information from the object modules in the executable you are creating. The corresponding command line option is /BR[OWSE]. ═══ 4.4. Stack size ═══ Specify the size of the stack to be used by the module. The size must be in the range from zero to 65535 (for 16-bit code) or zero to 4294967295 (for 32-bit code). You can use any of the following formats:  Hexadecimal (prefixed by 0x as in 0x2D7)  Octal (prefixed by zero as in 027)  Decimal (cannot start with zero as in 27). The default value is 32K for the first thread of your application. The corresponding command line option is /ST[ACK]:number. ═══ 4.5. Module load address ═══ Use this option to specify the address that the module will be loaded at if the address space is not being used by other code. You can use this option for both executable files and dynamic link libraries. You can use any of the following formats:  Hexadecimal (prefixed by 0x as in 0x2D7)  Octal (prefixed by zero as in 027)  Decimal (cannot start with zero as in 27). For executable files, the recommended value is 65536. The corresponding command line option is /BAS[E]:number. ═══ 4.6. Application type ═══ Select one of these radio buttons to specify the type of program to be built by the linker. Select None if you do not want the linker to set the type of program. The program itself will determine what kind of program it is. By default, the VisualAge C++ linker creates a program that runs in a text window (see Window below). Select the PM radio button to specify to the linker that the file to be built is a Presentation Manager* program and is to be run in a window. The corresponding command line option is /PM[TYPE]:PM. Select Window to specify to the linker that the program can run in a window but is not a Presentation Manager* program. The corresponding command line option is /PM[TYPE]:VIO. Select Full screen to specify to the linker that the program can only run in full screen mode. The corresponding command line option is /PM[TYPE]:NOVIO. ═══ 4.7. Compression ═══ Use the Compression options to select the type of compression you want to perform on your executable. The options are as follows: None Does not compress the executable. The corresponding command line option is /NOEXEPACK. Data Compresses data segments in the executable. The corresponding command line option is /EXEPACK. Code and data Only select this option if your executable does not need to run under OS/2 version 2.1 or earlier. Executables compressed with this option can only be run under OS/2 version 3.0 or later. This option compresses both code and data segments. The corresponding command line option is /EXEPACK:2. ═══ 4.8. Pack the code segments ═══ Select Pack the code segments to concatenate the code segments when building the module. If the Pack the code segments check box is selected, you can use the Size entry field to specify the maximum size of each of the concatenated code segments in the module. The size must be in one of the following formats:  Hexadecimal (prefixed by 0x as in 0x2D7)  Octal (prefixed by zero as in 027)  Decimal (cannot start with zero as in 27). For 16-bit code, the size can be from zero to 65500 and the default value is 65500. For 32-bit code, the size can be from zero to 4294967295 and the default value is 4294967295. The corresponding command line options are: /PACKC[ODE] (the default) If the Pack the code segments is selected. /NOP[ACKCODE] causes the linker to not pack the code. /PACKC[ODE]:number If a number is entered in the Size field. ═══ 4.9. Pack the data segments ═══ Select Pack the data segments to concatenate the data segments together when building the module. If the Pack data segments check box is selected, you can use the Size entry field to specify the maximum size of each of the concatenated data segments in the module. The size must be in one of the following formats:  Hexadecimal (prefixed by 0x as in 0x2D7)  Octal (prefixed by zero as in 027)  Decimal (cannot start with zero as in 27). For 16-bit code, the size can be from zero to 65536 and the default value is 65536. For 32-bit code, the size can be from zero to 4294967295 and the default value is 4294967295. The corresponding command line options are: /PACKD[ATA] If the Pack data segments is selected. /PACKD[ATA]:number If a number is entered in the Size field. ═══ 4.10. Maximum number of segments ═══ Specify the maximum number of segments that is to be allowed in the module. The number must be in the range from 1 to 16375. You can use any of the following formats:  Hexadecimal (prefixed by 0x as in 0x2D7)  Octal (prefixed by zero as in 027)  Decimal (cannot start with zero as in 27). The default is 256. The corresponding command line option is /SE[GMENTS]:number. ═══ 4.11. Segment alignment ═══ Specify the segment alignment factor (in bytes) in the executable file. The default value is 512. The corresponding command line option is /A[LIGNMENT]:number. ═══ 4.12. Remove unreferenced functions ═══ Select this option to remove functions that are unreachable. The linker removes functions that are:  Not referenced in any input file  Rendered unreferenced by the removal of other functions  Not exported for use in other files The corresponding command line option is /OPTF[UNC]. ═══ 5. Processing ═══ The options that appear on this page specify to the linker how to build the executable file. They are:  Do not display the logo (/NOL[OGO])  Display link-time information (/INF[ORMATION])  Generate a map file (/MAP)  Generate map file with line numbers ( /LINENUMBERS)  Ignore case (/I[GNORECASE])  Search the extended library (/E[XTDICTIONARY])  Ignore default libraries (/NOD[EFAULTLIBRARYSEARCH][:libname]) ═══ 5.1. Do not display the logo ═══ Choose whether or not to display the name, version, and copyright information of the linker. The corresponding command line option is (/NOL[OGO]). ═══ 5.2. Display link-time information ═══ Select this option to display messages as it creates the executable file. The corresponding command line option is /INF[ORMATION]. ═══ 5.3. Ignore case ═══ Select this option to ignore the case of external definitions when trying to resolve external references. The corresponding command line option is /I[GNORECASE]. ═══ 5.4. Search the extended dictionary ═══ Select this option to use the extended library information (if it exists) found in the library. The corresponding command line option is /E[XTDICTIONARY]. ═══ 5.5. Ignore default libraries ═══ Select Ignore default libraries to specify that the linker should not search the default libraries named within the object modules. If only certain default libraries should be ignored, you can enter their names in the Particular libraries to ignore field if the Ignore default libraries check box is selected. Note: If you are specifying more than one library, separate the names with a space (' '). The corresponding command line options are: /NOD[EFAULTLIBRARYSEARCH] To ignore all the default libraries named in the object modules. /NOD[EFAULTLIBRARYSEARCH]:libname For each particular library to be ignored. ═══ 5.6. Generate map file ═══ Use the Generate map file option to generate a map file. Select Generate map file with line numbers to include line numbers from the source files in the map file. You can specify a name for the map file on the File page of the notebook. The corresponding command line option is /M[AP]. ═══ 5.7. Generate map file with line numbers ═══ Use the Generate map file with line numbers option to generate a map file that includes the line numbers from source files in the output. The object files being linked must contain line number information for this option to take effect. You can specify a name for the map file on the File page of the notebook. The corresponding command line option is /L[INENUMBERS]. ═══ 6. File names ═══ This page lets you specify the names of the following files: Generated target file name The name of the module file. Map file name The name of the map file. Libraries to use The names or paths of any libraries to be used for resolving external references. You can also specify paths to be searched for the required libraries. Definition file name The name of the definition file used to build the module. ═══ 6.1. Generated target file name ═══ Enter the name of the module file to be produced. By default, the entry field contains the %o substitution variable. This variable is substituted with the Name specified on the Target page of the project's Settings note book. The corresponding linker command line option is /OUTfilename. ═══ 6.2. Map file name ═══ Enter the name of the map file to be produced. You must first specify that you want a map file, by selecting either the Generate a map file or Generate a map file check box on the Processing page. If no extension is specified, the linker assumes the extension is .MAP. The corresponding linker command line option is /MAPfilename. ═══ 6.3. Libraries to use ═══ Enter the names of the libraries and object files to be searched when the linker tries to resolve the external references found in the objects it is linking. If a name does not have the extension .LIB or .OBJ, the extension .LIB is appended. If the extension is .OBJ, the name is treated as another file that will be linked. The linker searches the libraries after searching the objects themselves. You can also specify fully qualified names. Note: Use a space (' ') to separate the entries. ═══ 6.4. Definition file name ═══ Enter the name of the definition file used to build the module. If no extension is specified, the linker assumes the extension is .DEF. ═══ 7. Templates ═══ Use this page to provide information about template use in your files. Use the C++ template support controls to indicate whether your code uses templates (and were compiled with the Produce file - Templates compiler option), and what compiler action the object files were compiled with. Note: If you are linking in old object files, created by previous versions of the compiler, that use template files, use the procedure given in Old object files when you compile and link. ═══ 7.1. C++ template support ═══ Select the Templates used checkbox to indicate that your code uses templates, and was compiled with the Produce file - Templates compiler option (equivalent to the /Ft command-line option). In the Associate Compiler Action pulldown, select the compiler action you used when compiling the source files. When you link the object files, the template files are compiled with this action, and then linked with the object files. Notes:  By default, there is only one compiler action available in the pulldown. However, if you have defined more than one compiler action, be sure that the compiler action you specify in the pulldown is the same as the compiler action you used during the compile step.  If you are linking in old object files, created by previous versions of the compiler, you need to use the procedure given in Old object files when you compile and link. The Templates used option only applies to projects containing C++ code that uses templates. If you specified C as the Source file language in the compiler options dialog, this option has no effect. ═══ 7.2. Old object files ═══ If you are linking object files created by previous versions of the compiler, you will need to: 1. Set the compiler to invoke the linker (in the Compiler Options notebook, on the Processing step page, select Compile and link) 2. Set the /Gk command-line option (in the Compiler Options notebook, on the User page, enter /Gk in the entry field) 3. Pass linker options to the linker, rather than setting them in the Linker Options notebook (in the Compiler Options notebook, on the Other page, enter linker options using command-line syntax in the Parameters passed to linker field). ═══ OK ═══ Select OK to save the options you chose and close the note book. ═══ Reset/Reset page ═══ Select Reset to set options to the values they had when the note book was opened. If the Reset page pushbutton is selected, only the options on that page are reset. If the Reset pushbutton on the bottom of the note book window is selected, all options in the note book are reset. ═══ Default ═══ Select Default to set options to their default values. If Default pushbutton at the bottom of the note book window is selected, all options are set to their default values. If the Default pushbutton on the page is selected, only the options on that page are set to the default values. ═══ Cancel ═══ Select Cancel to remove the note book without making any changes. ═══ Keys Help ═══ The list of keys is arranged in groups. Use:  HELP KEYS to get help  SYSTEM KEYS to switch between programs  WINDOW KEYS to move around in a program window  POP-UP WINDOW KEYS to make a selection in a pop-up window  EDITING KEYS to make changes in a pop-up window. When two key names are joined by a plus sign (+), use these two keys together. Hold down the first key and press the second key. HELP KEYS F1 Get help F2 Get extended help (from within any help window) F9 Go to a list of keys (from within any help window) F11 or Shift+F1 Go to the help index (from within any help window) Esc Cancel help Alt+F4 Close the help window Shift+F10 Get help for help SYSTEM KEYS Alt+Esc Switch to the next program, including full-screen programs Alt+Tab Switch to the next windowed program Ctrl+Esc Switch to the Task List WINDOW KEYS F10 Go to/from the action bar Arrow keys Move among choices End Go to the last choice in a pulldown Esc Cancel a pulldown, the system menu, or window Home Go to the first choice in a pulldown PgUp Scroll the contents of the window up one page PgDn Scroll the contents of the window down one page Underlined letter Move among the choices on the action bar and select pulldown items Alt Go to/from the action bar Alt+F4 Close the window Alt+F5 Restore the window Alt+F7 Move the window Alt+F8 Size the window Alt+F9 Minimize the window Alt+F10 Maximize the window Ctrl+PgDn Scroll the contents of the window right one page Ctrl+PgUp Scroll the contents of the window left one page Shift+Esc or Alt+Spacebar Go to/from the system menu Shift+Esc or Alt Go to/from the system menu of a text window POP-UP WINDOW KEYS Enter Complete the pop-up window Esc Cancel the pop-up window Spacebar Set a check box on/off or perform the task described on the selected pushbutton Tab Move to the next entry field or check box EDITING KEYS Backspace (left arrow delete) Delete the character to the left of the cursor Del Delete the character at the cursor End or Ctrl+Right Arrow key Move to the end of a field Home or Ctrl+Left Arrow key Move to the beginning of a field. ═══ Intermediate Linking ═══ Use DDE4ICC2.DLL to do intermediate linking. See the help for Invoke intermediate code linker on the Object page of the note book used to set the compiler options.