Библиотека файлов на С - PullRequest
1 голос
/ 18 июля 2010

Являются ли файлы библиотеки .o или .exe файлами в C?

Ответы [ 5 ]

13 голосов
/ 18 июля 2010

Ни; обычно .o файлы являются объектными файлами, а .exe файлы являются полностью связанными двоичными файлами (в Windows).

  • Статические библиотеки в Linux: .a
  • Динамические библиотеки в Linux: .so
  • Статические библиотеки в Windows: .lib
  • Динамические библиотеки в Windows: .dll
5 голосов
/ 18 июля 2010

Это больше зависит от операционной системы, чем от языка.

  • В Windows это могут быть файлы .dll.
  • В Linux это могут быть файлы .a или .so.
  • В OS X это могут быть файлы .a, .so или .dylib.
3 голосов
/ 18 июля 2010

Ни. Это также зависит от платформы. Кроме того, расширение файла является только условным, и библиотеки могут иметь любое другое расширение или не иметь его вообще.

1 голос
/ 31 октября 2013

В linux файлы библиотеки представляют собой архив одного или нескольких файлов .o.Linux использует программу 'ar' (например, tar без ленты) для создания архива.После объединения их вместе вы используете программу ranlib для добавления индексации.

ar rc mylib.a source1.o source2.o source3.o
ranlib mylib.a
1 голос
/ 18 июля 2010

Ответ - библиотеки не являются * .o или * .exe. Кроме того, соглашение об именах зависит от платформы, которую вы компилируете. Файл * .so является общей библиотекой. * .a - статическая библиотека на платформе Linux.

Вы можете указать параметры во время компиляции для сборки библиотек.

Здесь вы можете проверить больше о разделяемых библиотеках и опциях компиляции и сборки для них.

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