DLL-ы, использующие C ++ в Linux - PullRequest
       10

DLL-ы, использующие C ++ в Linux

2 голосов
/ 28 сентября 2008

Я пытался найти способ создания DLL-файлов в Linux с помощью Google, но получил очень запутанную информацию.

Можно ли писать библиотеки динамических ссылок в Linux? Если нет, есть ли другие способы, с помощью которых я могу вызывать код в другом модуле из нескольких запущенных программ?

Ответы [ 4 ]

14 голосов
/ 28 сентября 2008

Это потому, что DLL - это термин Windows. В Linux они называются разделяемыми библиотеками.

http://www.linux.org/docs/ldp/howto/Program-Library-HOWTO/shared-libraries.html

7 голосов
/ 28 сентября 2008

Как сказал Sklivvz , термин, который вы используете в linux, является общим объектом. Им дается расширение файла .so.

Используя gcc, вы можете создать .so, используя опцию -shared.

например.

<code>
gcc -shared -o libfoo.so foo.c

Если вы называете свой общий объект lib * .so, вы можете скомпилировать его, используя опцию -l в вашем компоновщике. Обратите внимание, что в этом случае подразумевается «lib».

т.


ld -o a.out -lfoo someobject.o 

В качестве альтернативы вы можете загружать .so файлы во время выполнения, так же, как вы можете использовать .dll s, используя dlopen () и dlsym ().

1 голос
/ 28 сентября 2008

Это лот , если вы только начинаете, но в какой-то момент вам нужно обратиться к Ульриху Дрепперу « Как писать общие библиотеки ».

0 голосов
/ 28 сентября 2008

Я предполагаю, что файлы .SO вместо DLL-файлов означают, что вам нужен общий объект, а не StackOverflow :).

...