Autore Topic: [RISOLTO] Un problema di link all'eseguibile  (Letto 1253 volte)

Edgar Bangkok

  • Visitatore
[RISOLTO] Un problema di link all'eseguibile
« il: 05 Agosto 2010, 12:46:31 »
Ho terminato un piccolo programma in Gambas che utilizza e crea, interfacciandosi a CURL, dei file testo contenenti i sorgenti di siti web le cui urls sono acquisite da liste di reverse IP. Funziona perfettamente e senza problemi.
Al suo interno ho usato molto i riferimenti ad application.path propio per evitare di dipendere dal percorso attuale del folder che contiene il programma.
Ho compilato il file ed ho provato a copiare il folder su altro pc dove e' inst. Gambas e nessun problema. Idem se sposto il folder che contiene l'eseguibile ed i files accessori al suo uso  da qualsiasi parte su ubuntu, tutto funziona regolarmente. Cliccando sull'eseguibile funziona perfettamente e salva i files rispettando i  percorsi selezionati da menu'

Il problema e' che se invece faccio una semplice icona di link con il comando “make link all eseguibile e la metto sul destop lasciano il folder in home/...ecc...  al lancio del programma sembra che questo non trovi piu' nessuno dei file che gli servono per funzinare.
Tanto per fare un esempio una istruzione del genere

Codice: [Seleziona]
Music.load(Application.Path & "/finished.wav") 

che e' tra le prime eseguite ritorna un messaggio che dice di non trovare il file musicale come se lo cercasse in home/..../desktop/ come se il programma lanciato da icona di collegamento pensasse di essere locato sul desktop e non nel suo folder.

D'altronde  compilando uno degli esempi in gambas e precisamente il game “deep space' mi succede lo stesso se lo lancio da icona di collegamento posizionata sul desktop

Codice: [Seleziona]
messaggio del genere  ..file or directory non exist...

Penso che sia una cosa molto banale ma scusate se lo chiedo visto che non ho molta pratica con

Gambas.

Qualche suggerimento ?.

Grazie per l'attenzione.

Edgar  :)
« Ultima modifica: 06 Agosto 2010, 14:48:53 da Edgar Bangkok »

Offline ealmuno

  • Maestro Gambero
  • ****
  • Post: 388
    • Mostra profilo
    • http://www.ealmuno.com
Re: Un problema di link all'eseguibile
« Risposta #1 il: 05 Agosto 2010, 12:52:12 »
forse non devi creare l'eseguibile (con estensione .gambas)
Prova con il pacchetto di installazione.
Sperando di non aver capito male :-[
il mio nuovo sito : ealmuno.com

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: Un problema di link all'eseguibile
« Risposta #2 il: 05 Agosto 2010, 12:52:24 »
Non conosco bene Ubuntu, ma ad ogni modo, nelle opzioni del link, dovrebbe essere la path su cui il link deve basarsi. Questo oltre alla path/eseguibile, ovviamente.
In effetti, il link esegue i programmi, se non specificato altrimenti, proprio facendo riferimento alla cartella $HOME/Desktop dell'utente.

Edgar Bangkok

  • Visitatore
Re: Un problema di link all'eseguibile
« Risposta #3 il: 05 Agosto 2010, 13:20:41 »
Come suggerisce md9327 Probabilmente e' piu' dovuto a come usa i links ad eseguibile linux, che un qualcosa legato al codice gambas.

Ho risolto creando un LAUNCHER (opzione cliccando col tasto destro del mouse sul  desktop) Come dice il nome il launcher e''' adatto a lanciare applicazioni passandogli il folder dove risiede il programma. Il mio errore e' stato quello di usare il MAKE LINK  che va bene per i files ma evidentemente ha dei limiti sugli eseguibili.

Adesso ho una icona che fa partire correttamente il  file.gamabas

Probabilmente creare un link con l'opzione Make Link ha delle limitazioni.

Resta da chiarire come mai certe applicazioni Gambas funzionino regolarmente con make link ma forse e' dovuto al fatto che non lavorano su files ma solo su dati in ram e non  hanno accessi ad altri files.
Ho fatto un semplice programma di due righe con un form e questo funziona correttamente lanciandolo da icona creata con  make links su desktop.

Forse creando il pacchetto di distribuzione anche in quel caso potrebbe funzionare ma a me la procedura che crea la distribuzione si blocca con messaggio di errore dopo due finestre di richiesta dati e quindi non posso testarla.

Inoltre l esempio del gioco Deep Space che non funziona da links icona e' anche l'unico degli esempi programma che mi pare usi la chiamata di application.path nel codice tra tutti i samples presenti in Gambas.

Saluti da Bangkok

Edgar  :)

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.482
    • Mostra profilo
Re: Un problema di link all'eseguibile
« Risposta #4 il: 05 Agosto 2010, 19:55:59 »
hai provato a mettere l' eseguibile nella cartella /usr/bin? (dove normalmente risiedono gli eseguibili) se tutto va bene sei in una botte di ferro

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: Un problema di link all'eseguibile
« Risposta #5 il: 06 Agosto 2010, 10:10:02 »
Mettere l'eseguibile su /bin o similari non è molto pratico. Sarebbe meglio creare un link su /bin al file...

Non ho capito cosa inytendi con "make link", ma in ogni caso la questione non è legata al sistema operativo, bensì al DM.
Con Gnome e Kde, il testo destro del mouse sul desktop, ti permette di creare una serie di agganci a qualcosa che è disperso sul disco, ma non è tutto. Puoi creare anche dei link a siti web.
Se crei un "lanciatore", devi specificare il comando da eseguire e, eventualmente, se prima del comando si deve posizionare in una cartella specifica (come nel tuo caso).
Se crei un link ad un documento, ad esempio, questo viene aperto usando il gestore di default (es. un odf viene aperto da OpenOffice, se presente). Ovviamente per questo non è necessario specificare una particolare directory di lavoro, perchè la gestione avviene sullo stesso documento, di cui hai specificato la posizione precisa.

Edgar Bangkok

  • Visitatore
Re: Un problema di link all'eseguibile [RISOLTO]
« Risposta #6 il: 06 Agosto 2010, 13:54:17 »

Citazione
Non ho capito cosa inytendi con "make link",

intendo la creazione di un link all'eseguibile attraverso l opzione tasto destro in desktop ubuntu



che non funziona nel caso specifico poiche quando clicco sul link creato il programma gambas non trova  i files che gli servono.


Mentre il link ad eseguible funziona con la  creazione di un launcer che genera l'icona cliccabile



Basta selezionare il file eseguibile cliccando sul tasto browse

Il folder che contiene sia l'eseguibile gambas  e tutti i files di supporto es  ini ecc....,  puo essere posizionato  in un qualunque percoso (/desktop/  /home/  ...ecc........ ).
  Comunque mi pare che a questo punto il problema sia risolto.


Saluti

Edgar  :)

« Ultima modifica: 06 Agosto 2010, 14:11:38 da Edgar Bangkok »

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.482
    • Mostra profilo
Re: [RISOLTO] Un problema di link all'eseguibile
« Risposta #7 il: 06 Agosto 2010, 17:33:08 »
Citazione
Mettere l'eseguibile su /bin o similari non è molto pratico. Sarebbe meglio creare un link su /bin al file...
certo non è molto pratico, ma comunque è un operazione da fare se si vuole testare il corretto funzionamento del programma visto che bangkok non riesce a creare i pacchetti deb.

ricordiamoci che quando installiamo un programma gambas da deb , questo posiziona l' eseguibile in /usr/BIN Siccome bangkok ha utilizzato application.path per definire la path di alcuni file utilizzati dal programma potrebbe verificarsi dei mal funzionamenti.

naturalmente se il programma viene realizzato per scopo personale e non verrà mai distribuito in binario tutto questo è inutile

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: [RISOLTO] Un problema di link all'eseguibile
« Risposta #8 il: 06 Agosto 2010, 21:43:13 »
Quello che dici, mi dispiace, non è del tutto vero.

Dipendentemente dalle distro, alcuni lasciano i binari nelle cartelle di installazione, linkando gli eseguibili necessari nella cartella /bin o /usr/bin (/sbin o /usr/sbin per i programmi root). Altri metto tutto nello stesso calderone, ovvero /bin (o /usr/bin e via dicendo).
Attualmente ci sono diversi formati di pacchettizzazione (vedi RPM e DEB), con cui vengono gestiti gli aggiornamenti e le installazioni, ma ognuno di questi formati ha una serie di configurazioni comuni, perchè mediamente si basano su uno standard, quello Linux, che ha una struttura ben definita.
Per farti un esempio, a suo tempo costruivo i package di Gambas, e avevo la possibilità di definire dove, come e perchè mettere un determinato file. Se dai un'occhiata ai sorgenti della gestione "creazione pacchetto" di Gambas2, vedrai che la procedura usa appositi programmi esterni, dipendentemente dalla distro in cui si trova, e crea un file di configurazione in cui viene definita la struttura di come verranno installati i file del programma. Tra questi anche la possibilità di decidere di metterli perfino sotto la cartella /tmp (una scelta idiota, ma è possibile farla...).
Ora, va anche bene che Gambas, nella costruzione dei pacchetti, utilizzi una determinata strategia, ma questa non è una regola ferrea. Se, per caso, hai la necessità di modificare l'impostazione classica standard, il tutto te lo gestisci te stesso dall'esterno, condizionando le varie fasi di installazione come ti aggrada.