When building a C++ archive that uses templates, it is necessary to include in the archive those template functions that are instantiated in the template repository. The template repository is used only when at least one object file was compiled using the -instances=extern option. Using this option automatically adds those templates to the archive as needed.
Specify -xar to invokes ar -c -r and create an archive from scratch.
The following command line archives the template functions contained in the library and object files.
example% CC -xar -o libmain.a a.o b.o c.o |
Do not add .o files from the template database on the command line.
Do not use the ar command directly for building archives. Use CC –xar to ensure that template instantiations are automatically included in the archive.
ar(1), Table 15–3