Domanda

Sto sviluppando un'applicazione Qt in Linux usando Qt Creator (2.1 RC). Ho creato 2 progetti, e utilizzato la procedura guidata per aggiungere il progetto libreria al progetto di applicazione. Tuttavia quando l'eseguo, ricevo l'errore:

/home/jakepetroules/silverlock/silverlock-build-desktop/desktop/silverlock: error while loading shared libraries: libsilverlocklib.so.1: cannot open shared object file: No such file or directory

C'è qualche variabile qmake posso impostare in modo che Qt Creator istituirà l'ambiente correttamente per l'esecuzione? E 'abbastanza fastidioso dover copiare tutti i file in un'altra directory con uno script lanciatore solo per essere in grado di testare la generazione. Su Windows funziona perfettamente - Qt Creator aggiunge automaticamente le directory che contengono le DLL al percorso quando si esegue l'applicazione (dove eseguirlo da Explorer direbbe DLL non trovata). Mac OS X è ancora peggio, dover eseguire install_name_tool su tutto ...

Così come posso impostare i miei file QMake quindi tutto funziona a destra dal pulsante di esecuzione in Qt Creator? Un po 'difficile da mettere a punto, senza questa capacità, anche.

È stato utile?

Soluzione

Sì, Creator ha una sezione in cui è possibile impostare qualsiasi ambiente necessario per l'esecuzione la vostra applicazione.

Il Creatore 2.0.0 questa si accede da: Progetti -> Obiettivi -> (il vostro target) -> Esegui -> Esegui Ambiente (dopo aver aperto il progetto)

È quindi possibile aggiungere o rimuovere le variabili d'ambiente si desideri, compresi LD_LIBRARY_PATH Una cosa che non sono sicuro di si se è possibile sostituire per esempio il percorso di generazione nel valore di queste variabili, in modo che non c'è bisogno di hardcode che nel vostro LD_LIBRARY_PATH.

Un'altra opzione sarebbe quella di aggiungere un piccolo script di shell per il vostro albero dei sorgenti che qualunque set sono necessarie variabili, e aggiungere una configurazione di esecuzione "Custom eseguibile" per eseguire lo script. Questo è accessibile attraverso lo stesso schermo.

Altri suggerimenti

Ho avuto un problema simile in esecuzione qt applicazioni con QtCreator sulla mia macchina linux. Ho risolto con l'aggiunta di righe seguenti al file .pro dell'applicazione client:

unix:LIBS += -L/home/projects/my_libs/ -lmy_lib

unix:{
  QMAKE_LFLAGS += -Wl,--rpath=/home/projects/my_libs/
  QMAKE_LFLAGS_RPATH=
}

informazioni rpath è qui: rpath

Spero che questo aiuti, saluti

Proprio con questo:

unix:LIBS += -L/home/projects/my_libs/ -lmy_lib
unix:{
  QMAKE_LFLAGS += -Wl,--rpath=/home/projects/my_libs/
}

E 'sloved mio problema troppo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top