C++: symbole externe non résolu _sprintf et _sscanf dans Visual Studio 2015
Pour un projet de recherche, je suis en train d'écrire un C++ complément à un langage de calcul scientifique. Malheureusement, la bibliothèque qui permet aux utilisateurs de faire ce n'est pas très bien jusqu'à date.
J'ai commencé le projet dans XCode, où il construit amende. Plus tard, j'ai dû passer à un PC, donc j'ai migré le code pour Visual Studio 2015. Depuis que je fais cela, je n'ai pas été en mesure de construire en raison des erreurs suivantes:
LNK2001 : unresolved external symbol _sprintf
LNK2019 : unresolved external symbol _sscanf referenced in function _GetDDouble
LNK2019 : unresolved external symbol _sprintf referenced in function _CheckRunningInMainThread
Une tentative de correction a été ajouter l'en-tête #define _CRT_SECURE_NO_WARNINGS
. Cependant, ceci a) fixe pas d'erreurs et b) ajout de l'avertissement C4005 : '_CRT_SECURE_NO_WARNINGS': macro redefinition
. Je suppose que la bibliothèque déjà défini cette macro, une anticipation de ce problème. Peu importe, elle ne résout pas le problème.
Comment dois-je procéder?
Vous devez vous connecter pour publier un commentaire.
Ajouter les éléments suivants de la bibliothèque de l'éditeur de liens de fichiers d'entrée:
VS 2015 utilise maintenant inline définitions que l'appel de fonctions internes pour beaucoup de
stdio.h
fonctions. Si un fichier objet (ou un membre de la bibliothèque) dépend de l'une de ces fonctions, alors lelegacy_stdio_definitions.lib
fournit l'extérieur réticulable version de la fonction qui peut être lié à.Votre autre option est de recompiler l'unité qui dépend de ces fonctions avec VS 2015 (c'est probablement l'option préférée).
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\lib\amd64
? Quels sont exactement les messages d'erreur que vous obtenez?J'ai eu cette erreur de compilation cyclisme max plugins rapport à la version 5 max sdk (pur c api). L'héritage de la bibliothèque fix ne fonctionne pas pour moi (il doit avoir, et si quelqu'un a une idée de pourquoi ça pourraient ne pas je serais curieux), mais j'ai défini _NO_CRT_STDIO_INLINE avant stdio était chargé et qui a fait faire l'affaire.