mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-06 05:40:54 -06:00
23 lines
1.1 KiB
Plaintext
23 lines
1.1 KiB
Plaintext
**Circular references with static libraries**
|
|
|
|
Some linkers are one-pass only so to handle circular references between
|
|
static libraries, the following feature can be used:
|
|
|
|
``RESCAN``
|
|
The specified static libraries are searched repeatedly until no
|
|
new undefined references are created. Normally, an static library is searched
|
|
only once in the order that it is specified on the command line. If a symbol
|
|
in that library is needed to resolve an undefined symbol referred to by an
|
|
object in an library that appears later on the command line, the linker would
|
|
not be able to resolve that reference. By grouping the static libraries, they
|
|
all be searched repeatedly until all possible references are resolved (use
|
|
linker options ``--start-group`` and ``--end-group`` or, on ``SunOS``,
|
|
``-z rescan-start`` and ``-z rescan-end``).
|
|
|
|
Using this feature has a significant performance cost. It is best to use it
|
|
only when there are unavoidable circular references between two or more
|
|
static libraries.
|
|
|
|
This feature is available on ``Linux``, ``BSD``, and ``SunOS`` target
|
|
platforms as well as ``Windows`` when ``GNU`` toolchain is used.
|