J'essaie de créer un simple programme C++ en utilisant code :: blocks et mingw, et je rencontre une erreur de liaison quelconque. Lorsque je tente de construire le projet, ld renvoie 1 sans détails supplémentaires. J'ai essayé de chercher en ligne des informations sur ce genre de problème, mais je n'ai rien trouvé.Le lieur échoue pour std :: map dans l'en-tête
J'essayé de déplacer la définition de example
test.hpp
-test.cpp
, et cela ne résout le problème de liaison, mais il fait en sorte que je ne peux pas accéder à example
d'autres fichiers qui importent test.hpp
. J'ai également essayé de supprimer complètement l'espace de noms, mais je voudrais éviter cela pour des raisons d'organisation (si c'est un usage totalement inapproprié des espaces de noms que j'apprécierais savoir). J'essaye de faire en sorte que finalement plusieurs parties de mon programme puissent accéder et mettre à jour example
pendant l'exécution.
test.hpp
#include <map>
#include <string>
namespace testing{
std::map<std::string,int> example;
}
test.cpp
#include "test.hpp"
#include <iostream>
namespace testing {
std::map<std::string,int> example;
}
sortie de la construction
=== Build: Debug in SilhouetteEngine (compiler: GNU GCC Compiler) ===
error: ld returned 1 exit status
=== Build failed: 1 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===
Merci, il a été longtemps depuis que je pris un cours en C++ et je l'avais complètement oublié 'extern'. –