Bonjour,
j'ai développé une bibliothèque de classe dont je souhaite désormais tester la fonction principale en faisant appel à un projet externe de test.
Je me retrouve néanmoins avec un problème de linker déjà rencontré de nombreuses fois mais que je n'arrive pas à résoudre cette fois-ci:
Le projet de test est une application console CLR. VS ne m'a pas autorisé une Win32 lorsque je dois rajouter la bibliothèque de classe qui a pour en-tête :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 1>commande_lib_clr.obj : error LNK2028: jeton non résolu (0A00000B) "public: int __thiscall test_lib::createMarkers::createOneMarker(char *)" (?createOneMarker@createMarkers@test_lib@@$$FQAEHPAD@Z) référencé dans la fonction "int __clrcall main(cli::array<class System::String ^ >^)" (?main@@$$HYMHP$01AP$AAVString@System@@@Z) 1>commande_lib_clr.obj : error LNK2019: symbole externe non résolu "public: int __thiscall test_lib::createMarkers::createOneMarker(char *)" (?createOneMarker@createMarkers@test_lib@@$$FQAEHPAD@Z) référencé dans la fonction "int __clrcall main(cli::array<class System::String ^ >^)" (?main@@$$HYMHP$01AP$AAVString@System@@@Z) 1>D:\Travail\commande_lib_clr\Debug\commande_lib_clr.exe : fatal error LNK1120: 2 externes non résolus
Après avoir édité les répertoires d'include et le linker en rajoutant les lib nécessaires au fonctionnement de test_lib (qui se compile très bien désormais), et en utilisant les mêmes paramètres pour mon projet commande_lib_clr, l'erreur vu en haut apparaît.
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 // test_lib.h #pragma once //using namespace System; // this had to be commented out namespace test_lib{ public class createMarkers { // TODO: Add your methods for this class here. public: createMarkers(char *VCID) :mCount(VCID) { } int createOneMarker(char *VCID_in); private: char * mCount; }; }
Alors il me manque sûrement juste un truc à rajouter dans le linker mais je vois pas lequel ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 // commande_lib_clr.cpp*: fichier projet principal. #include "stdafx.h" #include "test_lib.h" using namespace System; int main(array<System::String ^> ^args) { test_lib::createMarkers cm1("abcd"); cm1.createOneMarker("abcd"); return 0; }
Si quelqu'un peut m'aider, j'en serais vraiment heureux
Merci d'avance !
Partager