vendredi 5 octobre 2018

Erreur LNK2019 - Error LNK2019 - symbole externe non résolu __except_handler4_common

Une des difficultés de la coexistence du langage C et du langage C++ ce sont les conventions de nommages du LINKER et cette error LNK2019 en est la conséquence. Pour trouver la solution c'est un peu la catastrophe :

Erreur des outils Éditeur de liens LNK2019

Et alors après avoir fait tout ça, je me retrouve avec l'erreur suivante :

Gravité Code Description Projet Fichier Ligne État de la suppression
Erreur LNK2019 symbole externe non résolu __except_handler4_common référencé dans la fonction __except_handler4 MFCStarterKit D:\Mabyre\Visual Studio\CPlusPlus\MFCStarterKit4.1\MFCStarterKit\MFCStarterKit\MSVCRTD.lib(_chandler4gs_.obj) 1

Merci ! Heureusement qu'il y des âmes charitables, la solution se trouvait ici :

https://stackoverrun.com/fr/q/8776145

malheureusement stackoverrun a disparu, lien cassé, pas grave, j'ai noté tout ça ici ...

Dans votre projet de bibliothèque, consultez : 

Propriétés -> C/C++ -> Génération de code -> Runtime Library :

Il y a des chances qu'il soit réglé sur :

DLL multithread de débogage (/ MDd)

Changez cette option et mettez la à :

multithread Debug (/ MTd)

et à la reconstruction, l'erreur aura disparue !

stackoverrun à disparu !

L'original de cet article dans :

Unresolved external symbol __except_handler4_common" in Visual Studio 2015

Franchement : 

/MDd à la place de /MTD cela ne me serait pas venu à l'idée ...

Conseil pour ajouter une librairie à votre projet

Lorsque vous suivez les directives de la page suivante :

https://www.developpez.net/forums/d740287/c-cpp/outils-c-cpp/visual-cpp/visual-cpp-ajout-d-bibliotheque/

pour ajouter une librairie à votre projet. 

N'oubliez pas que vous pouvez mettre les chemins d'accès aux .lib .dll et autres en "relatif", si vous utilisez l'outil de recherche pour aller chercher les objets, il mettra le chemin en "absolu" et vous aurez alors des problèmes si vous renommez ou déplacez tout ou partie de votre projet.

Tous ces soucis ont été corrigés avec Visual Studio C#.NET, c'est curieux que cela ne le soit pas pour Visual C++ ...

Have fun!

Aucun commentaire:

Enregistrer un commentaire