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?

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top