PDA

View Full Version : Errore di compilazione


iron84
12-01-2008, 23:28
Sto tentando di compilare questo gioco: http://sourceforge.net/projects/squares/

Purtroppo ho problemi con le qt nella compilazione.

Ora il file config.log mi da come errore (copio solo l'ultima parte)
configure:4174: checking size of int
configure:4193: gcc -o conftest -O2 conftest.c 1>&5
configure: In function 'main':
configure:4187: warning: incompatible implicit declaration of built-in function 'exit'
configure:4212: checking size of long
configure:4231: gcc -o conftest -O2 conftest.c 1>&5
configure: In function 'main':
configure:4225: warning: incompatible implicit declaration of built-in function 'exit'
configure:4250: checking size of char *
configure:4269: gcc -o conftest -O2 conftest.c 1>&5
configure: In function 'main':
configure:4263: warning: incompatible implicit declaration of built-in function 'exit'
configure:4288: checking size of char
configure:4307: gcc -o conftest -O2 conftest.c 1>&5
configure: In function 'main':
configure:4301: warning: incompatible implicit declaration of built-in function 'exit'
configure:4328: checking for dlopen in -ldl
configure:4372: checking for shl_unload in -ldld
configure:4391: gcc -o conftest -O2 conftest.c -ldld 1>&5
/usr/bin/ld: cannot find -ldld
collect2: ld returned 1 exit status
configure: failed program was:
#line 4380 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
char shl_unload();

int main() {
shl_unload()
; return 0; }
configure:4420: checking for extra includes
configure:4451: checking for extra libs
configure:4485: checking for libz
configure:4511: gcc -o conftest -O2 conftest.c -L/usr/include/qt3/lib/ -lz -lresolv 1>&5
configure:4541: checking for X
configure:4580: gcc -E conftest.c >/dev/null 2>conftest.out
configure:4656: gcc -o conftest -O2 conftest.c -lXt 1>&5
configure:4830: checking for IceConnectionNumber in -lICE
configure:4849: gcc -o conftest -O2 -L/usr/lib conftest.c -lICE -lresolv 1>&5
configure:4878: checking for libXext
configure:4904: gcc -o conftest -O2 -L/usr/lib -L/usr/include/qt3/lib/ conftest.c -lXext -lX11 -lresolv 1>&5
configure:4931: checking for Xinerama
configure:5078: checking for libpng
configure:5108: gcc -o conftest -O2 -I. conftest.c -L/usr/lib -L/usr/include/qt3/lib/ -lpng -lz -lm -lX11 -lresolv 1>&5
configure:5140: checking for libjpeg6b
configure:5178: gcc -o conftest -O2 -I. conftest.c -L/usr/lib -L/usr/include/qt3/lib/ -ljpeg6b -lm 1>&5
/usr/bin/ld: cannot find -ljpeg6b
collect2: ld returned 1 exit status
configure: failed program was:
#line 5157 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
struct jpeg_decompress_struct;
typedef struct jpeg_decompress_struct * j_decompress_ptr;
typedef int size_t;
#ifdef __cplusplus
extern "C" {
#endif
void jpeg_CreateDecompress(j_decompress_ptr cinfo,
int version, size_t structsize);
#ifdef __cplusplus
}
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */

int main() {
jpeg_CreateDecompress(0L, 0, 0);
; return 0; }
configure:5201: checking for libjpeg
configure:5239: gcc -o conftest -O2 -I. conftest.c -L/usr/lib -L/usr/include/qt3/lib/ -ljpeg -lm 1>&5
configure: 5279: /usr/include/jpeglib.h
taking that
configure:5393: checking for Qt
configure: 5455: /usr/lib/qt2/include/qstyle.h
configure: 5455: /usr/lib/qt2/qstyle.h
configure: 5455: /usr/lib/qt/include/qstyle.h
configure: 5455: /usr/lib/qt/qstyle.h
configure: 5455: /usr/local/qt/include/qstyle.h
configure: 5455: /usr/include/qt/qstyle.h
configure: 5455: /usr/include/qstyle.h
taking that
tried NO
tried /usr/lib/qt2/lib
tried /usr/lib/qt2
tried /usr/lib/qt/lib
tried /usr/lib/qt
tried /usr/X11R6/lib
tried /usr/lib
tried /usr/local/qt/lib
tried /usr/lib
configure:5554: rm -rf SunWS_cache; c++ -o conftest -O2 -fno-exceptions -fno-check-new -I/usr/include -I. -LNONE -L/usr/lib -L/usr/include/qt3/lib/ conftest.C -lqt -lpng -lz -lm -ljpeg -lXext -lX11 -lSM -lICE -lresolv 1>&5
/usr/bin/ld: cannot find -lqt
collect2: ld returned 1 exit status
configure: failed program was:
#include "confdefs.h"
#include <qglobal.h>
#include <qapplication.h>
#include <qevent.h>
#include <qstring.h>
#include <qstyle.h>
#include <qiconview.h>
#if ! (QT_VERSION >= 222)
#error 1
#endif

int main() {
QStringList *t = new QStringList();
QIconView iv(0);
iv.setWordWrapIconText(false);
QString s;
s.setLatin1("Elvis is alive", 14);
int magnolia = QEvent::Speech; /* new in 2.2 beta2 */
return 0;
}

e il configure esce così:
checking for shl_unload in -ldld... no
checking for extra includes... no
checking for extra libs... added
checking for libz... -lz
checking for X... libraries /usr/lib, headers .
checking for IceConnectionNumber in -lICE... yes
checking for libXext... yes
checking for Xinerama... no
checking for libpng... -lpng -lz -lm
checking for libjpeg6b... no
checking for libjpeg... -ljpeg
checking for Qt... configure: error: Qt (>= Qt 2.2.2) (libraries) not found. Please check your installation!
For more details about this problem, look at the end of config.log.


Non capisco cosa c'è che non va.

Gimli[2BV!2B]
12-01-2008, 23:59
Hai installato gli headers QT?

Se la risposta è negativa nei repository puoi trovare gli header delle Qt 3 e delle Qt 4, credo ti convenga usare le Qt 3.
Installa libqt3-headers e relative (abbondanti) dipendenze e dovresti essere pronto per compilare.

P.S. Potrebbero servirti anche i libqt3-compat-headers, che forniscono headers vecchi per compilare programmi scritti con le Qt 1.x e 2.x (come questo che sembra essere basato sulle Qt 2.2.2).

iron84
13-01-2008, 10:09
Sì. sono già installati, ma continuo ad avere quell'errore.

Gimli[2BV!2B]
13-01-2008, 14:41
Se non l'hai già fatto, prova ad aggiungere anche il pacchetto libqt3-mt-dev.

Purtroppo non è esattamente quello che sembra mancare: l'errore che ricevi "/usr/bin/ld: cannot find -lqt" riguarda la mancanza di libqt3-dev ma sembra che quel pacchetto sia stato abolito tempo fa (e pensavo venisse installato qualcosa di equivalente con gli headers Qt).
Ora esiste solo la sua versione multithread, libqt3-mt-dev appunto, che però andrebbe invocata durante la compilazione con -lqt-mt e non -lqt come si vede nel tuo configure, ma probabilmente funziona con entrambi i parametri...

iron84
13-01-2008, 15:03
Anche questo pacchetto è installato: libqt3-mt-dev.

Scusa ma non ho ben capito cosa significa ...andrebbe invocata durante la compilazione con -lqt-mt e non -lqt come si vede nel tuo configure, ma probabilmente funziona con entrambi i parametri...


Ma alla fine può essere che ho problemi a compilarlo perchè i sorgenti sono del 2002?

ilsensine
13-01-2008, 15:44
<...>
Il problema non è banale come sembra. Quel programma cerca le libqt, mentre ormai tutti usano le libqt-mt (mt=multithread). Non sapevo che ci fossero ancora in giro programmi che usano le libqt non mt. Questo vuol dire che devi trovare e installare una versione compatibile con la tua distribuzione (header di sviluppo inclusi), oppure armarti di un pò di pazienza e compilare le qt da sorgenti (disabilitando il supporto multithread).

Prova anche questo (probabilmente non funzionerà, ma provare non costa nulla):
ln -s /usr/lib/libqt-mt.so /usr/lib/libqt.so

ilsensine
13-01-2008, 15:47
Ma alla fine può essere che ho problemi a compilarlo perchè i sorgenti sono del 2002?
Andiamo bene. Quel coso non credo si compilerà affatto con le qt3.

iron84
13-01-2008, 15:53
Ma si riuscirebbe quindi a compilare le qt2 (se si trovano ancora in giro) e poi compilare il gioco e alla fine creare un file .deb?
Oppure quando i sorgenti sono così vecchi si lascia stare? Io purtroppo non ho le competenze per metterci mano ai sorgenti :( .

ilsensine
13-01-2008, 16:23
Oh bene ti annuncio che quel coso richiede anche kde, probabilmente la versione 2.
(nb per abilitare le libqt-mt, usa ./configure --enable-mt)

iron84
13-01-2008, 17:46
cioè è praticamente inutilizziabile all'atto pratico quei sorgenti. Andrebbe riscritto tutto?

ilsensine
13-01-2008, 18:15
Passi per le Qt (potrebbero andare anche le 3), ma per kde la vedo dura...
Prova...