Модель связывания отличается в Windows и в Linux .Прочитайте книгу Левина Компоновщики и загрузчики (в Linux каждый публичный символ из библиотеки экспортируется, если только вы не играете видимость трюки, в Windows это не так, и экспортируемые символы должны быть объяснены).
Стандарт C ++ 11 (читать n3337 ) не упоминайте динамические ссылки.Это деталь реализации.
Будущее C ++ 20 может иметь модулей .
Нет "библиотек импорта"в Linux.
Для получения более подробной информации, помните, что искажение имени отличается.Читайте также Руководство по программной библиотеке , Drepper's Как писать общие библиотеки
В Linux, плагины загружаются (и обрабатываются иначе , чем в Windows) динамическим загрузчиком .См. ld-linux (8) , dlopen (3) , dlsym (3) , elf (5)
Проверка в Linux файлов ELF ( объектные файлы , библиотеки , исполняемые файлы ) с помощью objdump (1) и readelf (1) и nm (1) .
См. Также C ++ dlopen mini howto .Читайте также об атрибуте Visibility .См. Также этот вопрос.
.so файлы, которые эквивалентны dll
Linux общий объект (*Файл 1091 * ELF .so
) не совсем эквивалентен для Windows DLL .Прочитайте ссылки, приведенные выше.
Я также рекомендую прочитать Операционные системы: три простых компонента и старые Расширенное программирование Linux (оба доступны для бесплатной загрузки).Позже прочитайте syscalls (2) и страницы, на которые есть ссылки.
Также помните, что Linux является свободным программным обеспечением , так что вы можете скачать и изучить исходный кодбольшинство его компонентов.
PS.Linux и Windows действительно разные.Не ожидайте найти в Linux точный эквивалент каждой функции Windows. Взгляните на Linux свежим взглядом. Воспользуйтесь преимуществами того, что Linux сделан из свободного программного обеспечения, и подумайте над изучением исходного кода, например, kernel , binutils , GNU libc или musl-libc (оба предоставляют несколько ld-linux.so
и libc.so
, поэтому стандартная библиотека C ), GCC или Clang (оба предоставляют стандартную библиотеку C ++ выше libc.so
).