Связывание разделяемой библиотеки с помощью gcc - PullRequest
28 голосов
/ 07 апреля 2009

У меня есть общая библиотека (* .so), созданная с помощью Real View Compiler Tools (RVCT 3.2) на цели Windows. Затем я пытаюсь связать этот * .so файл с моим приложением, используя gcc в системе linux.

Что такое опция gcc для связи этой общей библиотеки с моим приложением linux?

У меня вопрос, есть опция -shared, которая используется как

gcc -shared myfile.so

..., используется для создания SO-файла или для связывания SO-файла? Я считаю, что это создает что-то вроде:

gcc -lmyfile.so

Этого достаточно? Или есть какой-то другой переключатель, который сообщает компоновщику, что это динамическая библиотека (общий объект)?

Ответы [ 2 ]

27 голосов
/ 03 ноября 2014

Что сработало для меня:

gcc -L. -l:myfile.so
15 голосов
/ 07 апреля 2009

gcc -lmyfile должно быть достаточно (при условии, что ваша библиотека называется libmyfile.so). Компоновщик ищет общие объекты, когда это возможно, и AFAIK предпочитает их.

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