DLL che usano C ++ su Linux
-
02-07-2019 - |
Domanda
Ho provato a trovare come creare DLL-s su Linux usando Google, ma ho ottenuto informazioni molto confuse.
È possibile scrivere librerie a collegamento dinamico su Linux? In caso contrario, ci sono altri modi con cui posso chiamare il codice in un altro modulo da diversi programmi in esecuzione?
Soluzione
Questo perché DLL è un termine di Windows. In Linux sono chiamate librerie condivise.
http: //www.linux. org / docs / LDP / HOWTO / programma-Biblioteca-HOWTO / shared-libraries.html
Altri suggerimenti
Come Sklivvz ha detto, il termine che stai cercando su linux è un oggetto condiviso. A questi viene data l'estensione del file .so
.
Usando gcc puoi creare un .so
usando l'opzione -shared
.
ad es.
gcc -shared -o libfoo.so foo.c
Se si denomina il proprio oggetto condiviso lib * .so, è possibile compilarlo utilizzando l'opzione -l
sul proprio linker. Tieni presente che " lib " è dedotto in questa circostanza.
es.
ld -o a.out -lfoo someobject.o
In alternativa puoi caricare i file .so
in fase di esecuzione, proprio come puoi fare con .dll
, usando dlopen () e dlsym ().
È un lotto se hai appena iniziato, ma a un certo punto dovrai fare riferimento a “ Come scrivere librerie condivise .”
Immagino che i file .SO invece dei file DLL, ovvero oggetti condivisi, non StackOverflow :), siano ciò che desideri.