home *** CD-ROM | disk | FTP | other *** search
- TLIB Help
-
-
- TLIB is a utility that manages libraries of individual .OBJ
- (object module) files. A library is a convenient tool for
- dealing with a collection of object modules as a single unit.
-
-
- Using TLIB: the Turbo Librarian
- ===============================
- When it modifies an existing library, TLIB always creates a copy of
- the original library with a .BAK extension.
-
- You can use TLIB to build and modify your own libraries, libraries
- furnished by other programmers, or commercial libraries you've
- purchased. You can also use TLIB to:
-
- o Create a new library from a group of object modules.
-
- o Add object modules or other libraries to an existing library.
-
- o Remove object modules from an existing library.
-
- o Replace object modules from an existing library.
-
- o Extract object modules from an existing library.
-
- o List the contents of a new or existing library.
-
-
- Why use object module libraries?
- --------------------------------
- When you program, you often create a collection of useful functions.
- With modular programming, you are likely to split those functions into
- many separately compiled source files. Any particular program might
- use only a subset of functions from the entire collection.
-
- An object module library manages a collection of functions and
- classes. When you link your program with a library, the linker scans
- the library and automatically selects only those modules needed for
- the current program.
-
-
- The TLIB command line
- ---------------------
- The TLIB command line takes the following general form, where items
- listed in square brackets are optional:
-
- tlib [@respfile] [option] libname [operations] [, listfile]
-
-
- Option Description
- ------ -----------
- @respfile The path and name of the response file you want to
- include. You can specify more than one response file.
-
- libname The DOS path name of the library you want to create or
- manage. Every TLIB command must be given a libname.
- Wildcards are not allowed. TLIB assumes an extension
- of .LIB if none is given. (It's best to use only the
- .LIB extension.) NOTE: If the named library does not
- exist and there are 'add' operations, TLIB creates the
- library.
-
- /C The case-sensitive flag. This option is not normally
- used.
-
- /E Creates Extended Dictionary.
-
- /Psize Sets the library page size to 'size'.
-
- /0 Removes comment records from the library.
-
- operations The list of operations TLIB performs. Operations can
- appear in any order. If you only want to examine the
- contents of the library, don't give any operations.
-
- listfile The name of the file that lists library contents. It
- must be preceded by a comma. No listing is produced if
- you don't give a file name. The listing is an
- alphabetical list of each module. The entry for each
- module contains an alphabetical list of each public
- symbol defined in that module. The default extension
- for the 'listfile' is .LST. You can direct the listing
- to the screen by using the 'listfile' name CON, or to
- the printer by using the name PRN.
-
-
- Using response files
- - - - - - - - - - - -
- When you use a large number of operations, or if you find yourself
- repeating certain sets of operations over and over, you will probably
- want to use response files. A response file is an ASCII text file that
- contains all or part of a TLIB command. Using response files, you can
- build TLIB commands larger than would fit on one command line.
- Response files can:
-
- o Contain more than one line of text; use the ampersand
- character (&) at the end of a line to indicate that
- another line follows.
-
- o Include a partial list of commands. You can combine
- options from the command line with options in a response file.
-
- o Be used with other response files in a single TLIB command line.
-
-
- Using case-sensitive symbols: The /C option
- - - - - - - - - - - - - - - - - - - - - - -
- TLIB maintains a dictionary of all public symbols defined in the
- modules of the library. When you add a module to a library, its symbol
- must be unique. If you try to add a module to the library that
- duplicates a symbol, TLIB displays an error message and doesn't add
- the module.
-
- NOTE: Don't use /C if you plan to use the library with other linkers
- or let other people use the library.
-
- Because some linkers aren't case-sensitive, TLIB rejects symbols that
- differ only in case (for example, the symbols 'lookup' and 'LOOKUP'
- are treated as duplicates). TLINK, however, can distinguish case, so
- if you use your library only with TLINK, you can use the TLIB /C
- option to add a module to a library that includes symbols differing
- only in case.
-
-
- Creating an extended dictionary: The /E option
- - - - - - - - - - - - - - - - - - - - - - - - -
- To increase the linker's capacity for large links, you can use TLIB to
- create an extended dictionary and append it to the library file. This
- dictionary contains, in a compact form, information that is not
- included in the standard library dictionary and that lets the linker
- (TLINK) preprocess library files so that any unnecessary modules are
- not preprocessed.
-
- To create an extended dictionary for a library that you're modifying,
- use the /E option when you start TLIB to add, remove, or replace
- modules in the library. You can also use the /E option to create an
- extended dictionary for an existing library that you don't want to
- modify. For example, if you type "TLIB /E mylib" the linker appends an
- extended dictionary to the specified library.
-
- If you use /E to add a library module containing a C++ class with a
- virtual function, you'll get the error message "Library contains
- COMDEF records--extended dictionary not created".
-
-
- Setting the page size: The /P option
- - - - - - - - - - - - - - - - - - -
- Every DOS library file contains a dictionary that appears at the end
- of the .LIB file, following all of the object modules. For each module
- in the library, the dictionary contains a 16-bit address of that
- particular module within the .LIB file; this address is given in terms
- of the library page size (it defaults to 16 bytes).
-
- The library page size determines the maximum combined size of all
- object modules in the library, which cannot exceed 65,536 pages. The
- default (and minimum) page size of 16 bytes allows a library of about
- 1 MB in size. To create a larger library, use the /P option to
- increase the page size. The page size must be a power of 2, and it
- cannot be smaller than 16 or larger than 32,768.
-
- All modules in the library must start on a page boundary. For example,
- in a library with a page size of 32 (the lowest possible page size
- higher than the default 16), an average of 16 bytes is lost per object
- module in padding. If you attempt to create a library that is too
- large for the given page size, TLIB issues an error message and
- suggests that you use /P with the next available higher page size.
-
-
- Removing comment records: The /0 option
- - - - - - - - - - - - - - - - - - - - -
- Use the /0 option to remove comment records, which reduces the size of
- a library. For example, you might have debugging or browsing
- information in a library, but you no longer need to use that
- information; the /0 option removes that information.
-
-
- The operation list
- - - - - - - - - - -
- The operation list describes what actions you want TLIB to do. It
- consists of a sequence of operations given one after the other. Each
- operation consists of a one- or two-character action symbol followed
- by a file or module name. You can put whitespace around either the
- action symbol or the file or module name but not in the middle of a
- two-character action or in a name.
-
- You can put as many operations as you like on the command line, up to
- 126 characters. The order of the operations is not important. TLIB
- always applies the operations in a specific order:
-
- 1) All extract operations are done first.
-
- 2) All remove operations are done next.
-
- 3) All add operations are done last.
-
- TLIB finds the name of a module by stripping any drive, path, and
- extension information from the given file name. TLIB always assumes
- reasonable defaults. For example, to add a module that has an .OBJ
- extension from the current directory, you need to supply only the
- module name, not the path and .OBJ extension.
-
- TLIB recognizes three action symbols (-, +, *), which you can use
- singly or combined in pairs for a total of five distinct operations.
- The action symbols and what they do are listed here:
-
- Symbol Name Description
- ------ ---- -----------
- + Add TLIB adds the named file to the library. If
- the file has no extension, TLIB assumes an
- extension of .OBJ. If the file is itself a
- library (with a .LIB extension), then the
- operation adds all of the modules in the named
- library to the target library. If a module
- being added already exists, TLIB displays a
- message and does not add the new module.
-
- - Remove TLIB removes the named module from the
- library. If the module does not exist in the
- library, TLIB displays a message. A remove
- operation needs only a module name. TLIB lets
- you enter a full path name with drive and
- extension included, but ignores everything
- except the module name.
-
- * Extract TLIB creates the named file by copying the
- corresponding module from the library to the
- file. If the module does not exist, TLIB
- displays a message and does not create a file.
- If the named file already exists, it is
- overwritten.
-
- -* Extract & TLIB copies the named module to the
- corresponding file name and then removes it
- from the library.
-
- -+ Replace TLIB replaces the named module with the
- corresponding file.
-
-
- Examples
- --------
- These examples demonstrate some of the things you can do with TLIB:
-
- o To create a library named MYLIB.LIB with modules X.OBJ,
- Y.OBJ, and Z.OBJ, type "tlib mylib +x +y +z".
-
- o To create a library named MYLIB.LIB and get a listing
- in MYLIB.LST too, type "tlib mylib +x +y +z, mylib.lst".
-
- o To replace module X.OBJ with a new copy, add A.OBJ and
- delete Z.OBJ from MYLIB.LIB, type "tlib mylib -+x +a -z".
-
- o To create a new library (ALPHA) with modules A.OBJ,
- B.OBJ...G.OBJ using a response file:
-
- First create a text file, ALPHA.RSP, with
-
- @^+a.obj +b.obj +c.obj &
- +d.obj +e.obj +f.obj &
- +g.obj
-
- Then use the TLIB command, which produces a listing file named
- ALPHA.LST: "tlib alpha @alpha.rsp, alpha.lst".
-
- NOTE: You can't directly rename modules in a library. To rename a
- module, extract and remove it, rename the file just created, then add
- it back into the library.
-
- /**************************** END OF FILE ********************************/
-
-