2016-05-25 2 views
-1

J'essaie d'exécuter un programme dans Code :: Blocks, et dans mon programme j'ai utilisé les fonctions de hachage, telles que hsearch et hcreate, mais Code :: Blocks ne semble pas les autoriser.Référence indéfinie à la fonction de hachage

J'ai l'en-tête:

#include <search.h>  

déjà inclus, mais des erreurs telles que "undefined reference to 'hsearch' " se heurte encore.

Y a-t-il un moyen de permettre à ces fonctions de s'exécuter dans Code :: Blocks?

+2

"* undefined reference *" est une erreur de l'éditeur de liens. – alk

+0

D'où avez-vous obtenu la bibliothèque? Il semble qu'il est mal configuré, et l'éditeur de liens ne peut pas le lier. – meskobalazs

+0

@meskobalazs Le fichier search.h a été obtenu à partir de la page de manuel [ici] (http://linux.die.net/man/3/hcreate) – Boku

Répondre

1

Les fichiers d'en-tête contiennent uniquement les déclarations . Vous devez avoir les bibliothèques installées, qui contiennent l'implémentation .

Et ce que cela vous dit. Il a trouvé les déclarations très bien, mais l'éditeur de liens n'a pas trouvé les bibliothèques, d'où l'erreur de liaison.

Sur Linux, le search.h et son implémentation fait partie du libc, il est donc déjà prêt à l'emploi. Sous Windows, cependant, vous devez en obtenir une version binaire, configurer le chemin de la bibliothèque pour Code :: Blocks et utiliser les options de l'éditeur de liens dans les paramètres.

+0

Ahhh oui, c'est ce que je cherche. Je vais chercher un peu sur le web et voir si je peux le trouver et le faire fonctionner. Merci beaucoup! – Boku