Библиотеки DLL, использующие C ++ в Linux
-
02-07-2019 - |
Вопрос
Я попытался найти, как создать DLL-файлы в Linux с помощью Google, но получил очень запутанную информацию.
Можно ли написать библиотеки динамических ссылок в Linux?Если нет, существуют ли другие средства, с помощью которых я могу вызвать код в другом модуле из нескольких запущенных программ?
Решение
Это потому, что DLL - это термин для Windows.В Linux они называются разделяемыми библиотеками.
http://www.linux.org/docs/ldp/howto/Program-Library-HOWTO/shared-libraries.html
Другие советы
Как Скливвз как уже говорилось, термин, который вам нужен в linux, - это общий объект.Им присваивается расширение файла .so
.
Используя gcc, вы можете создать .so
используя -shared
вариант.
например.
gcc -shared -o libfoo.so foo.c
Если вы назовете свой общий объект lib *.so, вы можете скомпилировать его с помощью -l
опция в вашем компоновщике.Обратите внимание, что в этом случае подразумевается "библиотека".
т.е.
ld -o a.out -lfoo someobject.o
В качестве альтернативы вы можете загрузить .so
файлы во время выполнения, точно так же, как вы можете с помощью .dll
s, используя dlopen() и dlsym().
Это лот если вы только начинаете, но в какой-то момент вам нужно будет обратиться к книге Ульриха Дреппера “Как Писать Общие библиотеки.”
Я думаю .SO files вместо DLL-файлов, что означает общий объект, а не StackOverflow :), - это то, что вы хотите.