1.3. Building a Static Library from the Command Line
Problem
You wish to use your command-line tools to build a static library from a collection of C++ source files, such as those listed in Example 1-1.
Solution
First, use your compiler to compile the source files into object files. If your source files include headers located in other directories, you may need to use the -I option to instruct your compiler where to search for headers; for more information, see Recipe 1.5. Second, use your archiver to combine the object files into a static library.
To compile each of the three source files from Example 1-1, use the command lines listed in Table 1-8, modifying the names of the input and output files as needed. To combine the resulting object files into a static library, use the commands listed in Table 1-10.
Table 1-10. Commands for creating the archive libjohnpaul.lib or libjohnpaul.a
|
Toolset |
Command line |
|---|---|
|
GCC (Unix)Intel (Linux)Comeau (Unix) |
ar ru libjohnpaul.a john.o paul.o johnpaul.oranlib libjohnpaul.a |
|
GCC (Windows) |
ar ru libjohnpaul.a john.o paul.o johnpaul.o |
|
Visual C++Comeau (with Visual C++) |
lib -nologo -out:libjohnpaul.lib john.obj paul.obj johnpaul.obj |
|
Intel (Windows) |
xilib -nologo /out:libjohnpaul.lib john.obj paul.obj johnpaul.obj |
|
Metrowerks (Windows) |
mwld -library -o libjohnpaul.lib john.obj paul.obj johnpaul.obj |
|
Metrowerks (Mac OS X) |
mwld -library -o libjohnpaul.a john.o paul.o johnpaul.o |
|
Borland |
tlib libjohnpaul.lib /u /a /C +john +paul +johnpaul ... |