Если G CC находит только библиотеку stati c, а не динамическую c, прибегает ли она к stati c, связывающей найденный файл? - PullRequest
0 голосов
/ 20 марта 2020

Пожалуйста, рассмотрите следующую команду:

gcc myfile.c -o myapp.exe -Lmydir -lmylib

mydir включает в себя следующий файл:

`libmylib.a`

Я знаю, что по умолчанию gcc хочет сделать dyanmi c связывание. Однако, как вы можете видеть, он не находит библиотеку libmylib.so dynamici c, только libmylib.a stati c one.

Означает ли это, что gcc будет статически связывать libmylib.a в исполняемый файл результата?

1 Ответ

0 голосов
/ 20 марта 2020

Это поведение зависит от компоновщика, а не от G CC. Стандартное поведение компоновщика состоит в том, чтобы использовать динамическую c библиотеку, а затем c one в каждом компоненте пути пути поиска ссылки. Например, если в первом из найденных каталогов есть только библиотека stati c по имени, второй каталог вообще не будет искать, даже если в нем есть динамический c. Таким образом, для нормальных ожиданий пользователя, чтобы работать правильно, соответствующие динамические c и stati c версии одной и той же библиотеки должны быть размещены в идентичном месте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...