C-library - guida per principianti

0

Mi è stato chiesto di fornire una libreria C del mio codice (che ho scritto in un linguaggio di alto livello). Assumerò un programmatore per implementare il mio codice in C. Vorrei una breve introduzione a cosa significa "C-library" prima di iniziare questo processo.

  1. È corretto che io possa fornire una C-library e che le persone che la usano non siano in grado di vedere il vero codice sorgente?
  2. Capisco che la libreria includa file .h che determinano come le persone a cui do il codice interagiranno con la libreria. Posso avere solo uno di questi file in modo che la struttura interna sia nascosta?
  3. In questa situazione, presumo che la libreria debba essere collegata dinamicamente. Perché è così?
posta StevieStevie 05.02.2015 - 11:56
fonte

1 risposta

8
  1. Si
  2. Si
  3. Non deve essere collegato in modo dinamico.

In dettaglio: quando si crea una libreria (non deve essere in C, ma presumo che questo significhi che deve esporre la sua funzionalità sotto forma di funzioni C esportate) allora il codice sorgente viene trasformato nelle equivalenti istruzioni macchina . Mentre un abile hacker potrebbe trasformare questo codice macchina in un linguaggio di livello superiore, è davvero imbarazzante e la decompilazione risultante è davvero difficile da comprendere per un essere umano. Quindi sei praticamente al sicuro da chiunque rubi i tuoi algoritmi, a meno che non siano veramente che valga la pena.

Per usare una libreria come questa, hai bisogno di un modo per dire ai programmi che si collegano alla lib cosa c'è dentro, questo in genere è fatto con un file di intestazione. Una singola intestazione contenente solo quelle funzioni esportate va bene. L'unica ragione per cui le persone usano intestazioni multiple è perché non vogliono il problema di mantenere duplicati e quindi semplicemente spedire le intestazioni utilizzate nello sviluppo.

La scelta di dinamica o statica dipende da te. Una libreria dinamica può essere sostituita facilmente con una versione più recente. Questo è il motivo più comune per la spedizione in questo formato.

    
risposta data 05.02.2015 - 12:06
fonte

Leggi altre domande sui tag