Creating a Library from IPO Objects

Linux* and Mac OS*

Libraries are often created using a library manager such as lib. Given a list of objects, the library manager will insert the objects into a named library to be used in subsequent link steps.

Example

xiar cru user.a a.o b.o

The above command creates a library named user.a containing the a.o and b.o objects.

If the objects have been created using -ipo -c then the archive will not only contain a valid object, but the archive will also contain intermediate representation (IR) for that object file. For example, the following example will produce a.o and b.o that may be archived to produce a library containing both object code and IR for each source file.

Example

icc -ipo -c a.cpp b.cpp

In this case, you must use the Intel library driver xild -lib. This program will invoke the compiler on the IR saved in the object file and generate a valid object that can be inserted into a library.

Example

xild -lib cru user.a a.o b.o

Using xiar is the same as specifying xild -lib.

Mac OS Only

When using xilibtool, specify -static to generate static libraries, or specify -dynamic to create dynamic libraries. For example, the following example command will create a static library named mylib.a that includes the a.o, b.o, and c.o objects.

Example

xilibtool -static -o mylib.a a.o b.o c.o

Alternately, the following example command will create a dynamic library named mylib.dylib that includes the a.o, b.o, and c.o objects.

Example

xilibtool -dynamic -o mylib.dylib a.o b.o c.o

Specifying xilibtool is the same as specifying xild -libtool.

Windows* Only

Create libraries using a library manager, link –lib. You can use xilib (or xilink –lib) to create libraries of IPO mock object files and link them on the command line.

For example, assume that you create three mock object files by using a command similar to the following:

Example

icl /c /Qipo a.obj b.obj c.obj

Further assume the a.obj is the main program. You can enter commands similar to the following to link the objects.

Example

xilib -out:main.lib b.obj c.obj

or

xilink -lib -out:main.lib b.obj c.obj

You can link the library and the main program object file by entering a command similar to the following:

Example

xilink -out:result.exe a.obj main.lib