Связывание в AIX с -qnoweakexp - PullRequest
0 голосов
/ 21 марта 2012

Каковы преимущества или недостатки использования опции -qnoweakexp для связывания общей библиотеки?

1 Ответ

1 голос
/ 14 марта 2013

Если задан параметр -qnoweakexp, слабые символы не экспортируются, это означает, что ваша общая библиотека будет меньше (если в ней есть слабые символы).

Слабый символ - это какой-то глобальный объект, помеченный слабой #pragma, или компилятор решил, что это слабый символ (например, я думаю, что функции, помеченные как встроенные, могут считаться слабыми). При связывании, если присутствуют повторяющиеся символы, обычно выигрывает первый, если он не слабый. Порядок: сначала выигрывает сильный символ, затем, если сильного символа нет, сначала выигрывает слабый.

-qnoweakexp создает вашу общую библиотеку без каких-либо символов, помеченных как слабые. Если ваше приложение на самом деле никогда не ссылается на слабые символы из этой общей библиотеки, тогда использование этой опции имеет смысл, так как уменьшает его размер. Однако если ваше приложение на самом деле использует слабые символы (функции или переменные), то, очевидно, эта опция плохая, поскольку разрешение символов не удастся.

...