2011-05-11 17 views
5

Sto sviluppando un'applicazione in Qt, ma usando il linguaggio D (con binding QtD). Ho notato che la mia app si blocca con Qt 4.7.x, quindi ho bisogno di usare Qt 4.6.2. Tuttavia nel mio sistema è installato Qt 4.7.2. Sfortunatamente non faccio funzionare QtD con le ultime versioni di Qt né (mi spiace) contare su sviluppatori QtD ...Come installare due versioni di Qt e comunicare all'applicazione quale utilizzare?

L'unica cosa che devo fare installare la mia applicazione nelle librerie di sistema Qt 4.6.2 e usarla, ma lascia che tutte le altre applicazioni utilizzino ancora Qt 4.7.2. È possibile? Se lo è, come si fa allora?

risposta

1

È possibile installare diverse versioni della libreria in un unico sistema e tutti i gestori di pacchetti (rpm, deb) supportano questo fuori dalla scatola.

Queste librerie avranno un nome diverso. Per esempio, se id fare

ls /usr/lib/ | grep libcurl 

sul mio sistema, vado a prendere:

libcurl-gnutls.so.3 
libcurl-gnutls.so.4 
libcurl-gnutls.so.4.2.0 
libcurl.so.3 
libcurl.so.4 
libcurl.so.4.2.0 

, così, versione differente della stessa libreria vivono felicemente insieme.

Tutto ciò che dovete fare è collegarvi alla versione desiderata della libreria QT. È necessario separarlo in opzioni di linker (non ricordare l'opzione esatta).

+0

Ho già scoperto alcuni altri problemi, quindi devo terminare il mio progetto. Grazie comunque per il tuo aiuto ... –

5

La risposta alla tua domanda è la versione di Qt determinata dal qmake che usi per generare il tuo Makefile.

/opt/QtSDK/Qt-4.6.2/bin/qmake

/opt/QtSDK/Qt-4.7.3/bin/qmake

Ognuno utilizzare la libreria in la directory.