QT, Borland, MinGW... je m'y perds (et ça marche pas)

QT, Borland, MinGW... je m'y perds (et ça marche pas) - C++ - Programmation

Marsh Posté le 26-01-2003 à 22:32:27    

Salut,
 
alors dans des posts précédents, on m'a conseillé Qt pour réaliser des programmes utilisant une interface graphique comme les fenêtres de Windows...
 
Sur le site de Trolltech, ils disent que Qt est compatible avec VC++ et Borland 5.5 freecommandLinetools...
 
Bon ben alors je télécharge les deux softs, et je tente un truc avec l'un des exemples fournis, je fais le

Code :
  1. qmake -o Makefile hello.pro

, puis après je fais

Code :
  1. make -f hello.pro

, mais il me met 26 erreurs, avec la première étant qu'il n'arrive pas à faire un include du fichier qstring.h...
 
Il y a des fichiers avec l'extension .h dans les repertoires de Borland et de Qt, et c'est le bordel, je sais pas comment m'en sortir...
La seule anomalie que j'ai vue: deux \ de suite dans le chemin de qstring.h (un truc du style D:\C++\Qt\\bin)
 
En plus, j'ai lu dans un post qu'un membre du Forum utilise gcc avec Qt... Comment je m'en sors moi?
 
HELP :cry:  :cry:  
 
Merci d'avance!!

Reply

Marsh Posté le 26-01-2003 à 22:32:27   

Reply

Marsh Posté le 26-01-2003 à 23:50:37    

deja t'as quel version de Qt ?
version 2.3 ou 3.1 ?
 
si c'est la 2.3 normalement ca s'utilise avec Visual
si c'est la version 3.1 c'est au choix
es ce que l'installation c'est bien passe ?
normalement durant l'installation ca a compile tous les exemples fournies avec Qt, ca a fonctionne ou pas ? peut-tu executes les exemples compiles ?
as tu laisse les choix par defaut durant l'install ou as tu change des options ?
 
et finalement c'est quoi les erreurs que tu recois ?
 
gcc avec Qt, la personne programme probablement sous UNIX or tu n'es pas sous unix

Reply

Marsh Posté le 26-01-2003 à 23:54:32    

Bon, après plusieurs tentatives, j'ai compris qu'il y avait une erreur dans le path, il y avait un \ à la fin, alors qu'il n'aurait pas du y en avoir...
 
Bon, alors maintenant il ouvre correctement les fichiers...
 
J'ai créé le code source suivant, que j'ai repris d'un exemple de Qt, dans la doc.
 

Code :
  1. #include <qapplication.h>
  2. #include <qpushbutton.h>
  3. int main( int argc, char **argv )
  4. {
  5.     QApplication a( argc, argv );
  6.     QPushButton hello( "Hello world!", 0 );
  7.     hello.resize( 100, 30 );
  8.     a.setMainWidget( &hello );
  9.     hello.show();
  10.     return a.exec();
  11. }


 
Je créé le projet, et ensuite je fais:
 
make -f makefile, également comme indiqué.
 
La première erreur est qu'il n'arrive pas à faire l'inclusion du fichier string.h dans le fichier qcstring.h à la ligne 46.
 
Voilà la ligne 46:
#include "string.h"
 
Si je change cette ligne par:
#include "D:\C++\Borland\include\string.h"
 
maintenant j'ai cette erreur:
Unable to open include file '_str.h'
 
Le problème vient donc du fait que les fichiers de Borland et ceux de Qt sont dans des répertoires différents, et qu'il n'arrive pas à aller des uns aux autres...
 
Comment je peux résoudre ce problème?
En mettant tous les fichiers de Borland dans le répertoire "include" de Qt? Mais même ça je crois l'avoir déjà fait, et après il me dit qu'il arrive pas à ouvrir les fichiers .obj du répertoire "Lib" de Borland...
 
Casse tête pour moi donc...


Message édité par haazheel le 26-01-2003 à 23:56:04
Reply

Marsh Posté le 27-01-2003 à 00:07:22    

haazheel a écrit :


Casse tête pour moi donc...


pour moi aussi parceque tu ne reponds toujours aux questions que je t'ai posses
donc difficile dans ces conditions de t'aider, ne crois-tu pas ?

Reply

Marsh Posté le 27-01-2003 à 00:32:02    

Mille excuses, je n'avais pas vu ta rèponse :pt1cable:  
 
Qt 3.1.
 
Alors pour l'installation, j'ai laissé les options par défaut, sauf que j'ai changé le répertoire d'installation.
 
Ca donne:
D:\C++\Borland\
D:\C++\Qt\
 
L'option Set QDir, je l'ai laissée décochée. Par contre, je peux pas accéder au choix du répertoire de Borland. (Je l'ai pas dis, mais c'est la version Borland que j'ai D/L).
 
J'ai laissé les deux premiers choix de base de données.
 
Quant à la compilation des exemples, elle n'a pas marché, et j n'ai donc pas d'exemples compilés.
 
Voici les lignes de la compilation du 1er exemple:

MAKE Version 5.2  Copyright (c) 1987, 2000 Borland
    cd tutorial
    make -i
MAKE Version 5.2  Copyright (c) 1987, 2000 Borland
    cd t1
    qmake t1.pro -o Makefile -nodepend -spec win32-borland
    cd t2
    qmake t2.pro -o Makefile -nodepend -spec win32-borland
    cd t3
    qmake t3.pro -o Makefile -nodepend -spec win32-borland
    cd t4
    qmake t4.pro -o Makefile -nodepend -spec win32-borland
    cd t5
    qmake t5.pro -o Makefile -nodepend -spec win32-borland
    cd t6
    qmake t6.pro -o Makefile -nodepend -spec win32-borland
    cd t7
    qmake t7.pro -o Makefile -nodepend -spec win32-borland
    cd t8
    qmake t8.pro -o Makefile -nodepend -spec win32-borland
    cd t9
    qmake t9.pro -o Makefile -nodepend -spec win32-borland
    cd t10
    qmake t10.pro -o Makefile -nodepend -spec win32-borland
    cd t11
    qmake t11.pro -o Makefile -nodepend -spec win32-borland
    cd t12
    qmake t12.pro -o Makefile -nodepend -spec win32-borland
    cd t13
    qmake t13.pro -o Makefile -nodepend -spec win32-borland
    cd t14
    qmake t14.pro -o Makefile -nodepend -spec win32-borland
    cd t1
    make
MAKE Version 5.2  Copyright (c) 1987, 2000 Borland
    bcc32 -c -tWR -w -w-hid -tWM -O2 -x- -RT- -DUNICODE -DQT_TRIAL -DQT_DLL -DQT_THREAD_SUPPORT -DQT_ACCESSIBILITY_SUPPORT -DQT_TABLET_SUPPORT -DQT_NO_DEBUG -I"D:\C++\Qt\include" -I"tmp\moc\release_mt_shared" -I"D:\C++\Qt\mkspecs\win32-borland" -otmp\obj\release_mt_shared\main.obj main.cpp
Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
main.cpp:
Error E2209 D:\C++\Qt\include\qcstring.h 46: Unable to open include file 'string.h'
Error E2268 D:\C++\Qt\include\qcstring.h 58: Call to undefined function 'strlen' in function qstrlen(const char *)
Error E2268 D:\C++\Qt\include\qcstring.h 61: Call to undefined function 'strcpy' in function qstrcpy(char *,const char *)
Error E2034 D:\C++\Qt\include\qcstring.h 61: Cannot convert 'int' to 'char *' in function qstrcpy(char *,const char *)
Warning W8057 D:\C++\Qt\include\qcstring.h 61: Parameter 'dst' is never used in function qstrcpy(char *,const char *)
Warning W8057 D:\C++\Qt\include\qcstring.h 61: Parameter 'src' is never used in function qstrcpy(char *,const char *)
Error E2268 D:\C++\Qt\include\qcstring.h 67: Call to undefined function 'strcmp' in function qstrcmp(const char *,const char *)
Error E2268 D:\C++\Qt\include\qcstring.h 73: Call to undefined function 'strncmp' in function qstrncmp(const char *,const char *,unsigned int)
Error E2268 D:\C++\Qt\include\qcstring.h 83: Call to undefined function 'strlen' in function cstrlen(const char *)
Warning W8057 D:\C++\Qt\include\qcstring.h 83: Parameter 'str' is never used in function cstrlen(const char *)
Error E2268 D:\C++\Qt\include\qcstring.h 86: Call to undefined function 'strcpy' in function cstrcpy(char *,const char *)
Warning W8057 D:\C++\Qt\include\qcstring.h 86: Parameter 'dst' is never used in function cstrcpy(char *,const char *)
Warning W8057 D:\C++\Qt\include\qcstring.h 86: Parameter 'src' is never used in function cstrcpy(char *,const char *)
Error E2268 D:\C++\Qt\include\qcstring.h 89: Call to undefined function 'strcmp' in function cstrcmp(const char *,const char *)
Warning W8057 D:\C++\Qt\include\qcstring.h 89: Parameter 'str1' is never used in function cstrcmp(const char *,const char *)
Warning W8057 D:\C++\Qt\include\qcstring.h 89: Parameter 'str2' is never used in function cstrcmp(const char *,const char *)
Error E2268 D:\C++\Qt\include\qcstring.h 92: Call to undefined function 'strncmp' in function cstrncmp(const char *,const char *,unsigned int)
Warning W8057 D:\C++\Qt\include\qcstring.h 92: Parameter 'str1' is never used in function cstrncmp(const char *,const char *,unsigned int)
Warning W8057 D:\C++\Qt\include\qcstring.h 92: Parameter 'str2' is never used in function cstrncmp(const char *,const char *,unsigned int)
Warning W8057 D:\C++\Qt\include\qcstring.h 92: Parameter 'len' is never used in function cstrncmp(const char *,const char *,unsigned int)
Error E2209 D:\C++\Qt\include\qtextstream.h 44: Unable to open include file 'stdio.h'
Error E2293 D:\C++\Qt\include\qtextstream.h 70: ) expected
Error E2321 D:\C++\Qt\include\qtextstream.h 73: Declaration does not specify a tag or an identifier
Error E2293 D:\C++\Qt\include\qtextstream.h 204: ) expected
Error E2040 D:\C++\Qt\include\qtextstream.h 212: Declaration terminated incorrectly
Error E2190 D:\C++\Qt\include\qtextstream.h 212: Unexpected }
Error E2190 D:\C++\Qt\include\qtextstream.h 212: Unexpected }
Error E2293 D:\C++\Qt\include\qtextstream.h 220: ) expected
Error E2040 D:\C++\Qt\include\qtextstream.h 228: Declaration terminated incorrectly
Error E2190 D:\C++\Qt\include\qtextstream.h 228: Unexpected }
Error E2190 D:\C++\Qt\include\qtextstream.h 228: Unexpected }
Error E2139 D:\C++\Qt\include\qvaluelist.h 86: Declaration missing ;
Error E2139 D:\C++\Qt\include\qvaluelist.h 162: Declaration missing ;
Error E2139 D:\C++\Qt\include\qvaluelist.h 224: Declaration missing ;
Error E2293 D:\C++\Qt\include\qvaluelist.h 250: ) expected
Error E2228 D:\C++\Qt\include\qvaluelist.h 250: Too many error or warning messages
*** 26 errors in Compile ***
** error 1 ** deleting tmp\obj\release_mt_shared\main.obj


 
Voilà, je pense avoir répondu à tout...
 
 
merci de ton aide :jap:

Reply

Marsh Posté le 27-01-2003 à 00:50:41    

haazheel a écrit :

 
L'option Set QDir, je l'ai laissée décochée.  
Quant à la compilation des exemples, elle n'a pas marché,  

 
ba voila tu as la reponse a ton probleme.  
il faut cocher QTDIR a l'install  
desinstalle proprement le soft, reboot et refait l'install tout pareil (dans les memes repertoires) mais en laissant l'option QTDIR par defaut.  
 
Que les exemples ne puissent pas se compiler a l'installation c'est tout de meme pas negligeable !  
 
en general quand on ne connait pas le logiciel que l'on utilise ou que l'on installe, on met les options par defaut (sauf les repertoires si on veut).
 
edit : oula non je me plante completement, c'est pas QTDIR qui fait chier, c'est plutot le "BORLANDDIR" !
 
je m'explique, QTDIR pointe sur le repertoire de Qt
ainsi dans la console quand tu lances qmake, il va regarder la variable d'environement QTDIR pour voir ou Qt est installe
 
Qt lui a besoin de savoir ou se trouve les fichiers string.h, stdlib.h ect... ces fichiers font partis du language C standard et Qt s'appuie dessus.
J'imagine que ton Borland fonctionne bien quand tu compiles un petit programme d'exemple en C qui inclue string.h et stdlib.h ou stdio.h
 
par contre comment dire a Qt ou se trouve ces fichiers de Borland, malheureusement je sais pas trop je suis un unixien (sous unix c'est a la compilation ou dans le Makefile -I pour specifier un repertoire d'include specifique). j'imagine que Borland te propose a l'installation de rajouter une ligne dans ton autoexec.bat (l'equivalent du QTDIR de Qt)
mais je pense que le mieux c'est de consulter les mailing lists sur le site web de trolltech, ce probleme a surement du survenir.
 
je peux pas joindre le site web de trolltech, j'imagine que c'est le ver qui utilise les trous de Microsoft SQL qui fait son boulot a merveille.


Message édité par tanguy le 27-01-2003 à 03:30:55
Reply

Marsh Posté le 27-01-2003 à 08:49:56    

effectivement je peux compiler correctement un petit prog avec Borland...
 
Je vais donc aller me renseigner sur le site de TrollTech...
 
Merci de ton aide, je poste la réponse si je trouve...

Reply

Marsh Posté le 27-01-2003 à 23:34:31    

bon, alors en copiant tous les fichiers et dossiers de borland dans ceux de Qt, ça marche...
 
Du moins j'ai plus toutes ces erreurs...
 
En revanche, j'en ai une nouvelle:
 

ILINK32 @MAKE0000.@@@
Turbo incremental link 5.00 copyright (c) 1997,2000 Borland
Fatal: Expected a File Name:
 
** error 2 ** deleting mike.exe


 
Pour info: je donne cette ligne de commande:
 
make -f Makefile
 
Des idées??

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed