Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Tastiera gaming MSI GK600 TKL: switch hot-swap, display LCD e tre modalità wireless
Tastiera gaming MSI GK600 TKL: switch hot-swap, display LCD e tre modalità wireless
MSI FORGE GK600 TKL WIRELESS: switch lineari hot-swap, tripla connettività, display LCD e 5 strati di fonoassorbimento. Ottima in gaming, a 79,99 euro
DJI Osmo Pocket 4: la gimbal camera tascabile cresce e ha nuovi controlli fisici
DJI Osmo Pocket 4: la gimbal camera tascabile cresce e ha nuovi controlli fisici
DJI porta un importante aggiornamento alla sua linea di gimbal camera tascabili con Osmo Pocket 4: sensore CMOS da 1 pollice rinnovato, gamma dinamica a 14 stop, profilo colore D-Log a 10 bit, slow motion a 4K/240fps e 107 GB di archiviazione integrata. Un prodotto pensato per i creator avanzati, ma che convince anche per l'uso quotidiano
Sony INZONE H6 Air: il primo headset open-back di Sony per giocatori
Sony INZONE H6 Air: il primo headset open-back di Sony per giocatori
Il primo headset open-back della linea INZONE arriva a 200 euro con driver derivati dalle cuffie da studio MDR-MV1 e un peso record di soli 199 grammi
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 24-07-2010, 13:12   #1
Duchamp
Member
 
L'Avatar di Duchamp
 
Iscritto dal: Apr 2010
Messaggi: 67
[C] metodo "out of the box" per distribuire un software + libreria .so

Ciao raga,
in questi giorni sto cercando un buon metodo per distribuire un software (già compilato), basato su alcune librerie esterne. Sarebbe bello se l'utilizzatore finale dovesse fare il minor sforzo possibile per far partire il programma: unzip dei materiali e doppio click sull'eseguibile. Ho già visto che qualcuno crea una sottodirectory "libs" che contiene tutti i file .so (librerie dinamiche, ambiente linux) e mi sembra un'ottima idea: lo è anche secondo voi?
Non ho problemi nella compilazione ma rimane un punto oscuro: dopo aver "copiato" i file utili da usr/lib (ad esempio) come faccio a linkarli in gcc con il nuovo path, che è in questo caso [mio_programma]/libs? Inoltre, gli header posso tranquillamente lasciarli nella cartella di sistema /include?
Vi ringrazio in anticipo per qualsiasi suggerimento, anche solo relativo alla scelta della cartella libs. Ovviamente guide e link sono i benvenuti
Duchamp è offline   Rispondi citando il messaggio o parte di esso
Old 24-07-2010, 13:18   #2
tuccio`
Senior Member
 
Iscritto dal: Apr 2010
Città: Frosinone
Messaggi: 416
se distribuisci l'eseguibile già compilato non servono gli header, servono solo librerie linkate dinamicamente.. ma ti fa schifo usare il make? O:
tuccio` è offline   Rispondi citando il messaggio o parte di esso
Old 24-07-2010, 13:28   #3
Duchamp
Member
 
L'Avatar di Duchamp
 
Iscritto dal: Apr 2010
Messaggi: 67
Quote:
Originariamente inviato da tuccio` Guarda i messaggi
se distribuisci l'eseguibile già compilato non servono gli header, servono solo librerie linkate dinamicamente.. ma ti fa schifo usare il make? O:
ciao tuccio`, ma con o senza make il problema rimane, o no? Anche nel makefile io devo specificare il path della libreria, che non è più in /usr ma nella cartella del mio software... O forse non ho colto il senso della tua osservazione
Duchamp è offline   Rispondi citando il messaggio o parte di esso
Old 24-07-2010, 16:53   #4
tuccio`
Senior Member
 
Iscritto dal: Apr 2010
Città: Frosinone
Messaggi: 416
nel make puoi mettere nella regola install un semplice cp libreria.so /usr/lib/libreria.so

e visto che ci sei distribuisci anche il sorgente e compila tutto con make ^_^
tuccio` è offline   Rispondi citando il messaggio o parte di esso
Old 25-07-2010, 13:25   #5
marco.r
Senior Member
 
Iscritto dal: Dec 2005
Città: Istanbul
Messaggi: 1817
Quote:
Originariamente inviato da Duchamp Guarda i messaggi
Non ho problemi nella compilazione ma rimane un punto oscuro: dopo aver "copiato" i file utili da usr/lib (ad esempio) come faccio a linkarli in gcc con il nuovo path, che è in questo caso [mio_programma]/libs? Inoltre, gli header posso tranquillamente lasciarli nella cartella di sistema /include?
Gli include servono solo per compilare per cui se distribuisci solo l'eseguibile lasciali pure dove sono. Per le librerie hai due alternative
1) colleghi staticamente le librerie all'eseguibile che quindi conterra' tutto il necessario e non necessitera' di file .so esterni
2) prepari uno script da far lanciare (al posto dell'eseguibile) che prima di far partire il programma vero e proprio imposti tra le altre cose la variabile d'ambiente LD_LIBRARY_PATH in modo che punto alla cartella con i file .so
__________________
One of the conclusions that we reached was that the "object" need not be a primitive notion in a programming language; one can build objects and their behaviour from little more than assignable value cells and good old lambda expressions. —Guy Steele
marco.r è offline   Rispondi citando il messaggio o parte di esso
Old 26-07-2010, 14:09   #6
Duchamp
Member
 
L'Avatar di Duchamp
 
Iscritto dal: Apr 2010
Messaggi: 67
Ciao di nuovo a tutti e grazie per le risposte. Purtroppo, vista l'utenza che utilizzerà il software, non è proprio possibile parlare di make e compilazione da sorgenti Dev'essere sul serio un binario già compilato pronto per l'uso.

Quindi se setto la variabile d'ambiente LD_LIBRARY_PATH con la cartella [mio_programma]/libs, questo path andrà a sovrascrivere quelli già esistenti standard o si aggiungerà semplicemente in coda?
Duchamp è offline   Rispondi citando il messaggio o parte di esso
Old 27-07-2010, 09:49   #7
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Sai già la distribuzione target sulla quale andrà installato ?
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 27-07-2010, 11:29   #8
Z80Fan
Senior Member
 
L'Avatar di Z80Fan
 
Iscritto dal: Sep 2009
Messaggi: 638
Ciao!
Quote:
Originariamente inviato da Duchamp Guarda i messaggi
Quindi se setto la variabile d'ambiente LD_LIBRARY_PATH con la cartella [mio_programma]/libs, questo path andrà a sovrascrivere quelli già esistenti standard o si aggiungerà semplicemente in coda?
si, a meno che non usi qualcosa del tipo
LD_LIBRARY_PATH = $LD_LIBRARY_PATH; path;path

Se vuoi, conosco questo programma...
http://www.phunland.com/wiki/Download
...che usa lo script di avvio (che si chiama phun) per settare il path giusto, e poi avvia l'eseguibile vero e proprio (che si chiama phun.bin).
__________________
| Il mio "OS" (thread su HWU) | |
Z80Fan è offline   Rispondi citando il messaggio o parte di esso
Old 27-07-2010, 11:37   #9
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Comunque quel path lo puoi settare anche al momento in cui vai a lanciare il programma. All'utente farai lanciare uno script bash invece del programma direttamente, così puoi manipolare quella variabile d'ambiente come più ti aggrada.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 27-07-2010, 16:48   #10
lock cmpxchg8b %ebx
Member
 
Iscritto dal: Apr 2010
Messaggi: 56
E aggiungere $ORIGIN/libs al RPATH?
Così non servono script...
lock cmpxchg8b %ebx è offline   Rispondi citando il messaggio o parte di esso
Old 27-07-2010, 22:15   #11
Duchamp
Member
 
L'Avatar di Duchamp
 
Iscritto dal: Apr 2010
Messaggi: 67
Quote:
Originariamente inviato da cionci Guarda i messaggi
Sai già la distribuzione target sulla quale andrà installato ?
Sarà quasi sicuramente usato su Ubuntu e derivati, considerata la diffusione...

Ringrazio tutti per le varie segnalazioni, mi prendo un paio di giorni di studio per le info che mi avete fornito, posterò in caso di problemi!
Duchamp è offline   Rispondi citando il messaggio o parte di esso
Old 28-07-2010, 06:59   #12
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
Originariamente inviato da Duchamp Guarda i messaggi
Sarà quasi sicuramente usato su Ubuntu e derivati, considerata la diffusione...
Allora fai un pacchetto deb e ti togli la paura Così avrai sotto controllo l'installazione, l'upgrade e la disinstallazione.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 30-07-2010, 18:54   #13
Duchamp
Member
 
L'Avatar di Duchamp
 
Iscritto dal: Apr 2010
Messaggi: 67
Benissimo, come anticipato eccomi di ritorno a martellare
Il .deb è sicuramente un'ottima idea per il futuro, ma vorrei studiarmelo con calma onde evitare ca**ate. Mi ha attirato molto il flag -rpath, tuttavia leggendo la documentazione non ho capito se dev'essere passato al linker durante la compilazione della libreria oppure quando si compila l'eseguibile finale... potreste farmi/linkarmi qualche esempio concreto? Ringrazio in anticipo.
Duchamp è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Tastiera gaming MSI GK600 TKL: switch hot-swap, display LCD e tre modalità wireless Tastiera gaming MSI GK600 TKL: switch hot-swap, ...
DJI Osmo Pocket 4: la gimbal camera tascabile cresce e ha nuovi controlli fisici DJI Osmo Pocket 4: la gimbal camera tascabile cr...
Sony INZONE H6 Air: il primo headset open-back di Sony per giocatori Sony INZONE H6 Air: il primo headset open-back d...
Nutanix cambia pelle: dall’iperconvergenza alla piattaforma full stack per cloud ibrido e IA Nutanix cambia pelle: dall’iperconvergenza alla ...
Recensione Xiaomi Pad 8 Pro: potenza bruta e HyperOS 3 per sfidare la fascia alta Recensione Xiaomi Pad 8 Pro: potenza bruta e Hyp...
Spento lo strumento LECP della sonda spa...
Voyager Technologies ha siglato un accor...
GoPro annuncia la linea MISSION 1 con tr...
Alcune varianti dei futuri Samsung Galax...
Il ridimensionamento di OnePlus in Europ...
Il cofondatore di Netflix ha lasciato l'...
ASUS porta in Italia il nuovo Zenbook Du...
Assassin's Creed: Black Flag Resynced, s...
Xbox Game Pass cambierà: tra le n...
I nuovi Surface Pro e Laptop sono vicini...
OnePlus ci riprova con la fascia bassa: ...
La Top 10 delle offerte Amazon del weeke...
XGIMI MoGo 2 Pro a 339€: Google TV con N...
Forum IT & Intelligence 2026: dall'A...
iPhone 16e per la prima volta a meno di ...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 01:39.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v