PDA

Visualizza la versione completa : Help Modifica Sorgenti


CaptainHook8
25-05-2008, 16:25
Ciao a tutti!
Vi descrivo brevemente il mio problema.
Ho un dispositivo(mediaplayer) con busybox (linux) e voglio installarci sopra il programma dctcs (http://yodctcs.googlepages.com/).
Una volta compilati i sorgenti sul pc,e messo i file sulla busybox,quando lancio il programma mi dice che non riesce a caricare delle librerie. Le librerie sono in una directory diversa dalla usuale /lib o usr/lib dove cerca il prog,e non posso metterle li perche il file system di root è read-only.
-Come faccio ora in fase di compilazione a linkare staticamente al binario le due librerie di cui ha bisogno?
-Oppure posso indicare in fase di compilazione al binario un percorso diverso dove cercare le librerie?
-Se devo modificare il makefile,in che modo?

Scusate se sono stato lungo,spero di essermi fato capire!
P.S:sulla busybox non ci sono molto comandi,gia provato LD_LIB_PATH e tutte gli altri possibili (e impossibili!!!),quindi le uniche soluzione sono quelle elencate sopra!

Grazie mille

hfish
25-05-2008, 16:48
o crei dei link simbolici delle librerie da dove sono a dove le cerca il programma, oppure passi come argomento a ./configure l'esatta posizione delle librerie

CaptainHook8
25-05-2008, 17:28
Originariamente inviato da hfish
o crei dei link simbolici delle librerie da dove sono a dove le cerca il programma, oppure passi come argomento a ./configure l'esatta posizione delle librerie

Credo di non poter creare link simbolici a dove le cerca il programma,cioè usr/lib, perchè il file system lì e di sola lettura....non posso scrivere in usr/lib.
Quale è la sintassi per passare a ./configure l'esatta posizione delle librerie?

Grazie mille.

CaptainHook8
25-05-2008, 20:27
Il problema del caricamento delle librerie è risolto con

$export LD_LIBRARY_PATH=directory_dove_sono_le_librerie #grazie a Sergio!!

Ora ne ho un altro! :dhò:
Quando lancio il programma mi dice che non trova il file di configurazione "/etc/dctcs.conf" che infatti non è in /etc,perchè non ci posso scrivere in /etc.
Posso settare qualche altra variabile di ambiente per questo?
Ti prego aiutami anche con questo che poi ho finalmente risolto!!

Grazie mille.

hfish
26-05-2008, 00:26
provato con ./configure --help?

CaptainHook8
26-05-2008, 01:00
Originariamente inviato da hfish
provato con ./configure --help?

Il mio dispositivo è un mediaplayer con una busybox, quindi sistema operativo linux si,ma molto limitato.
Io posseggo il binario (dctcs) con file di configurazione (dctcs.conf) di un programma già compilato apposta per il mio sistema( da cui non posso compilare).
Ora il problema è che il file system di root è read-only,quindi non posso creare niente(cartelle,file,etc)in root (cioè in /etc:/usr:/lib).Quindi ho passato i files del programma in una parte del sistema read & write ( /var).
Prima quando lanciavo il programma mi chiedeva le librerie, che non trovava in /lib (non ci posso copiare niente lì) e con LD_LIBRARY_PATH ho risolto dicendo al programma di cercarle in /var/lib dove le ho copiate.

ORA quando lancio il programma mi chiede il file di configurazione /etc/dctcs.conf che io ho messo in /var/etc perchè non posso copiare niente in /etc!
La mia domanda è:
posso dire al programma di cercare il suo file di configurazione in un nuova path con il settaggio di qualche variabile di ambiente come fatto con le librerie?
C'è un altro modo senza dover ricompilare?

Grazie mille.

hfish
26-05-2008, 10:35
prova a ricompilare passando a ./configure la seguente opzione

--sysconfdir=DIR read-only single-machine data [PREFIX/etc]

CaptainHook8
27-05-2008, 11:20
Originariamente inviato da hfish
prova a ricompilare passando a ./configure la seguente opzione

--sysconfdir=DIR read-only single-machine data [PREFIX/etc]

Quali sono le variabili?Cioè DIR deve essere la directory dove ho messo il file .conf?

Grazie.

hfish
27-05-2008, 11:24
prova così...
non so se funzionerà, ma tentare non nuoce :fagiano:

come avevo già suggerito, una spulciatina a ./configure --help non guasta, di solito

CaptainHook8
30-05-2008, 10:03
Ho risolto!
Grazie mille hfish per i tuoi consigli. :unz:

Poichè sto cercando di imparare mi riserbo però di richiedere il tuo aiuto in futuro...

Ancora grazie.


:ciauz:

Loading