Bonjour à tous,
Je possède un projet C++ sous Linux que je souhaite importer sous Visual Express (la version gratuite). Sous Linux, aucun problème, l'exécutable se crée et le programme marche. Mais sous Visual Express, il y a une erreur à l'édition de lien que je ne comprends pas (ici avec un exemple bidon pour plus de simplicité, qui ne fait strictement rien) :
L'arborescence du code et son contenu sont les suivants :1>------ Début de la génération*: Projet*: testbidon, Configuration*: Debug Win32 ------
1>Compilation en cours...
1>main.cpp
1>Édition des liens en cours...
1>main.obj : error LNK2019: symbole externe non résolu "public: void __thiscall Bidon::print_bidon(void)" (?print_bidon@Bidon@@QAEXXZ) référencé dans la fonction _main
1>D:\Boulot\ENSE3\2A\Stage\Work\program_visualcpp\biotik\Debug\testbidon.exe : fatal error LNK1120: 1 externes non résolus
main.cpp :
bidon/bidon.cpp (ici je définis la méthode print_bidon) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 #include "bidon/bidon.h" int main() { Bidon bidon; bidon.print_bidon(); return(0); }
bidon/bidon.h (ici je déclare juste la méthode et définis la classe) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 #include "bidon.h" void print_bidon() { return; }
Quand je teste ce code en mettant tout les fichiers dans le même répertoire, tout va bien. Mais ici, c'est l'arborescence avec le sous-répertoire ("bidon") qui pose problème, et justement il est important de conserver cette arborescence dans le projet initial. Comment donc faire fonctionner ce programme sans changer l'arborescence des fichiers ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 class Bidon { public: void print_bidon(); };
J'ai trouvé une personne sur les forums qui a eu le même problème, mais impossible de la contacter... please help me !! :o)
P.S : tous les .obj sont correctement générés, c'est bien le linkage qui foire...
Partager