Qualche domanda sulle librerie c++

Se avete dubbi o domande sulla programmazione in generale, fatele qui
Rispondi
Nemo
Little John
Messaggi: 778
Iscritto il: 2 maggio 2012, 13:22
Architettura: x86_64 (64bit)
Località: Albairate (MI)

Qualche domanda sulle librerie c++

Messaggio da Nemo » 14 marzo 2016, 11:23

Buondì a tutti,
mi sono da poco avvicinato al C++ e sto iniziando a sviluppare una serie di software per la gestione dell'ambiente grafico BE::Shell. Dato che sebbene saranno applicazioni separate andranno a interfacciarsi tutte con la stessa shell ci saranno ovviamente dei metodi che mi servirà più volte richiamare. Pensavo quindi di scrivere una libreria (dinamica) per gestire tutti i metodi comuni, ma a quanto pare c'è qualcosa che mi sfugge.

La libreria, attualmente davvero basilare, l'ho scritta, compila e mi crea correttamente l'eseguibile .so. Come da standard linux ho poi installato la stessa copiando l'eseguibile in /usr/lib, ma qui sorgono i dubbi che non sono riuscito a chiarirmi cercando in giro: come richiamo la libreria all'interno di un programma? intendo dire, so che devo linkarla in fase di compilazione, ma se devo inserire i suoi metodi precedentemente all'interno di del mio software? perché il semplice #include mi genera errore. Oppure il problema sta nel fatto che non ho capito per niente qual'è la vera funzione di una libreria e la sto utilizzando in modo completamente errato?

Grazie in anticipo
Dell Inspiron 7577 - Intel(R) Core(TM) i7-7700HQ CPU@2.80GHz - RAM 16Gb - Nvidia 1060 6GB - KDE5

In questo nostro universo deterministico avere il pieno controllo delle proprie scelte è sinonimo di non contare niente

Avatar utente
TheSaint
Robin Hood
Messaggi: 7919
Iscritto il: 8 settembre 2007, 7:43
Architettura: x86_64 (64bit)
Località: davanti al computer

Re: Qualche domanda sulle librerie c++

Messaggio da TheSaint » 14 marzo 2016, 14:29

Conosco poco di di cpp. ho provato a cercare. Anche questo può aiutare.
Se non sbaglio il concetto è #include<mylib.so> o simile.
F the saint 13 anni da questo forum ;)
Gli uomini consumano il pianeta, almeno due di queste cose si possono ridurre.

Nemo
Little John
Messaggi: 778
Iscritto il: 2 maggio 2012, 13:22
Architettura: x86_64 (64bit)
Località: Albairate (MI)

Re: Qualche domanda sulle librerie c++

Messaggio da Nemo » 14 marzo 2016, 17:04

Si il concetto è #include <qualcosa> ma questo va a cercare nella cartella /usr/include che contiene una sfilza di file .h ma non le librerie (che sono da standard installate in /usr/lib). Quello che non capisco e che non sembra documentato da nessuna parte è: se io voglio richiamare la mia libreria all'interno di un programma per poterne usare i metodi definiti come la includo essendo in un percorso standard ma diverso da quello di ricerca? E non intendo dire che voglio aggiungere un percorso personalizzato, quello so come si fa, voglio capire cosa mi manca per far si che il mio percorso standard /usr/lib funzioni anche per gli include. O magari come già detto non ho capito niente del concetto di libreria e sto cercando di fare una cosa inutile e stupida. Perché se come leggo ovunque le librerie servono davvero solo in fase di linking allora io che faccio? ci butto dentro i suoi metodi nel programma senza nessun #include particolare e poi la linko e basta? Perché non mi sembra una cosa molto sensata per quello che ne so, dato che il linking avviene solo nella seconda fase della compilazione e lì il compilatore avrà già sputato una cinquantina di errori dato che non sa dove andare a trovare i vari metodi.

Scusate ma mi sembra davvero che la documentazione su queste cose faccia un po schifo, a livello globale intendo.
Dell Inspiron 7577 - Intel(R) Core(TM) i7-7700HQ CPU@2.80GHz - RAM 16Gb - Nvidia 1060 6GB - KDE5

In questo nostro universo deterministico avere il pieno controllo delle proprie scelte è sinonimo di non contare niente

Avatar utente
TheSaint
Robin Hood
Messaggi: 7919
Iscritto il: 8 settembre 2007, 7:43
Architettura: x86_64 (64bit)
Località: davanti al computer

Re: Qualche domanda sulle librerie c++

Messaggio da TheSaint » 14 marzo 2016, 18:22

Se l' include è fuori dal percorso credo che allora dovresti dare tutto il percorso nella specifica dell' include

Codice: Seleziona tutto

#include "/tutto/il/percorso/del/file/mylib.so"
Ribadisco che non conosco il cpp, faccio di più con python, credo che ci sia qualche analogia.
F the saint 13 anni da questo forum ;)
Gli uomini consumano il pianeta, almeno due di queste cose si possono ridurre.

Nemo
Little John
Messaggi: 778
Iscritto il: 2 maggio 2012, 13:22
Architettura: x86_64 (64bit)
Località: Albairate (MI)

Re: Qualche domanda sulle librerie c++

Messaggio da Nemo » 14 marzo 2016, 19:34

Sisi di analogie ce ne sono molte..probabilmente però mi sto spiegando male io perché la tua risposta non centra con la mia domanda

Mettere un percorso personalizzato (come hai proposto tu) è un conto, ma il mio problema è che installando in /usr/lib una libreria dovrebbe automaticamente poter esser includibile (non so nemmeno se esiste come parola) in un nuovo programma.
Così non sembra essere però quindi chiedevo se qualcuno sa qual'è il passaggio che evidentemente mi manca per fa si che un semplice

Codice: Seleziona tutto

#include <mialib>
dia il risultato voluto.

Dato oltretutto che il software verrà distribuito una volta terminato non vorrei dover far si che l'utente X debba inserire percorsi personalizzati etc se non c'è né strettamente bisogno.
Dell Inspiron 7577 - Intel(R) Core(TM) i7-7700HQ CPU@2.80GHz - RAM 16Gb - Nvidia 1060 6GB - KDE5

In questo nostro universo deterministico avere il pieno controllo delle proprie scelte è sinonimo di non contare niente

Avatar utente
TheSaint
Robin Hood
Messaggi: 7919
Iscritto il: 8 settembre 2007, 7:43
Architettura: x86_64 (64bit)
Località: davanti al computer

Re: Qualche domanda sulle librerie c++

Messaggio da TheSaint » 14 marzo 2016, 20:21

Non ti so dire altro che, prova a vedere qualche esempio.
F the saint 13 anni da questo forum ;)
Gli uomini consumano il pianeta, almeno due di queste cose si possono ridurre.

Nemo
Little John
Messaggi: 778
Iscritto il: 2 maggio 2012, 13:22
Architettura: x86_64 (64bit)
Località: Albairate (MI)

Re: Qualche domanda sulle librerie c++

Messaggio da Nemo » 14 marzo 2016, 22:19

Certo, forse ho finalmente trovato qualcosa. Grazie mille comunque per l'aiuto!
Dell Inspiron 7577 - Intel(R) Core(TM) i7-7700HQ CPU@2.80GHz - RAM 16Gb - Nvidia 1060 6GB - KDE5

In questo nostro universo deterministico avere il pieno controllo delle proprie scelte è sinonimo di non contare niente

Rispondi