Bonjour,
Je suis actuellement en train de faire un petit projet pour me familiariser avec Qt, et je bloque sur la compilation depuis l'ajout d'une classe à mon projet.
Pour commencer, je donne ma configuration: QtCreator sous WinXP.
Je précise que j'ai pour ambition de faire une MainFrame en projet principal, et qui utilise des DLL (ou SO si je les fais sous Linux) pour obtenir des Widgets qui peuvent très bien vivre séparément.
J'ai créé des classes de base qui n'implémentaient pas QWidget, sauf une classe principale vide, et depuis que j'ai développé un des Widgets à insérer, il me met un problème de linker systématique.
Au niveau de l'architecture, c'est un peu du MVC:
- la classe VirtualCard qui contient toutes mes données à manipuler.
- la classe ShowContact qui doit afficher un formulaire contenant ces données. Elle hérite de QWidget.
Quand j'ai créé la classe VirtualCard, et quelques classes annexes (pour définir des enum et faire l'interface avec le système de fichier), je n'ai eu aucun problème, et j'arrivais à faire ma DLL.
Mais depuis que j'ai rajouté ma classe ShowContact, qui utilise à pleins poumons les accesseurs de VirtualCard, le linker me met des "undefined reference to" pour chaque appel à un accesseur de VirtualCard, mais aussi pour les éléments static de sa propre classe.
Exemple:
C:/.../Contacts/showcontact.cpp:110: undefined reference to `VirtualCard::note() const'
VirtualCard et ShowContact sont dans le même dossier, les accesseurs sont bien dans la partie public, j'ai bien mis:
dans showcontact.h
Code : Sélectionner tout - Visualiser dans une fenêtre à part #include "virtualcard.h"
Donc là je commence à être à cours d'idées sur ce qui peut déconner ou non.
Dans le doute, si ça vient du .pro, je vous laisse juger:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 # ------------------------------------------------- # Project created by QtCreator 2009-08-10T14:52:16 # ------------------------------------------------- TARGET = Contacts TEMPLATE = lib DEFINES += CONTACTS_LIBRARY SOURCES += contacts.cpp \ vcfreader.cpp \ vcfwriter.cpp \ virtualcard.cpp \ vcfprocessor.cpp \ showcontact.cpp HEADERS += contacts.h \ Contacts_global.h \ vcfreader.h \ vcfwriter.h \ virtualcard.h \ vcfprocessor.h \ showcontact.h RESOURCES += FORMS +=
Merci d'avance pour votre aide
NewbieG33k
Partager