Bonjour,
Je travaille en C++ avec Qt Creator sous Windows et j'essaie de compiler plusieurs fichiers.
Voici une partie du code :
- dans le main.cpp :
- dans le mainwindow.cpp :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 #include "../Graph/mainwindow.h" #include "main.h" ... void toto() { List<real> tata = List<real>(3); cout << tata[0] << tata[1] << tata[2] << endl; }
- dans le main.h :
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 #include "ui_mainwindow.h" #include "mainwindow.h" ... template <class T> List<T>::List(ent aSize) { assert(aSize >= 0); _size = aSize; if (_size) _list = new T[aSize]; else _list = (T*)0; for (ent i = 0 ; i < _size ; ++i) _list[i] = (T)0; } ...
- dans le mainwindow.h :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 #include "../Graph/mainwindow.h" ...
- dans le Z0.pro (Z0 est le nom du projet)
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 // Aucun #include perso ... typedef long long int ent; typedef long double real; template <class T> class List { public : T* _list; ent _size; public : List (ent aSize = 0 ) ; ... };
Tant que je n'avais que les fichiers mainwindow.h et mainwindow.cpp, tout fonctionnait.
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 2024-07-09T11:10:48 # #------------------------------------------------- QT += core gui greaterThan(QT_MAJOR_VERSION, 4): QT += widgets TARGET = Z0 TEMPLATE = app SOURCES += main.cpp\ ../Graph/mainwindow.cpp HEADERS += main.h\ ../Graph/mainwindow.h FORMS += mainwindow.ui
Mais depuis que je crée plusieurs fichiers (je ne sais pas vraiment le faire) et que je fais dans un autre répertoire (je les référence alors par ../Graph/ avant maindow.h et avant mainwindow.cpp), ça ne marche pas. Je précise que les mots sont quand même reconnus au moment où je tape le code puisqu'ils s'affichent avec une couleur différente.
Le message d'erreur de compilation est :
<<undefined reference to 'List<long double>::List(long long)'>>
Sauriez-vous m'aider s'il vous plaît ?
Merci d'avance.
Partager