2

J'ai lu la section Compilation sur Windows en installation page mais je reste très confus, j'espère que certains experts pourront m'éclairer.Comment puis-je inclure <sodium.h> correctement dans Visual Studio?


Je LATEST.tar.gz téléchargé à partir here. Après cela, j'ai copié sodium.h et sodium dossier dans libsodium-1.0.12\src\libsodium\include à mon projet.

Voici the code:

#include <stdio.h> 
#include "sodium.h" 
#pragma warning (disable:4996) 

void main() 
{ 
    char myString[32]; 
    uint32_t myInt; 

    /* myString will be an array of 32 random bytes, not null-terminated */ 
    randombytes_buf(myString, 32); 

    /* myInt will be a random number between 0 and 9 */ 
    myInt = randombytes_uniform(10); 

    printf("%d", myInt); 

    system("pause"); 
} 

Et je reçois ces erreurs lors de la compilation:

Erreur LNK1120 2 externals non résolues

Erreur LNK2019 symbole externe non résolu __imp__randombytes_buf référencé dans la fonction _main

Err ou LNK2019 symbole externe non résolu __imp__randombytes_uniform référencé dans la fonction _main

Je n'ai pas erreur comme « ne peut pas sodium.h ouvert ».

Comment puis-je résoudre ce problème?

Toute aide est appréciée.

+0

Vous semblez donc que vous n'avez pas lié la bibliothèque correctement ou que vous ne l'avez pas lié du tout? – user5954246

+0

Mais je ai déjà mis sodium.h et le dossier de sodium dans mon fichier de projet et inclus dans mes fichiers source – Coolwei

+1

vous ne le mettez pas simplement dans le dossier et laissez le compilateur comprendre ce qu'il veut faire avec ces fichiers que vous devez lier et dire au compilateur où vous incluez les en-têtes et autres choses. – user5954246

Répondre

2

Vos erreurs vous indiquent qu'il y a un problème au lien time - donc votre problème n'est pas avec sodium.h compris. Il y a une bibliothèque qui n'est pas ajoutée à votre projet. Vous ne pouvez pas simplement copier la bibliothèque dans votre répertoire de projet, vous devez indiquer à Visual Studio de la lier.

+0

Comment puis-je dire à VS de le lier? – Coolwei

+0

C'est fait dans la section Linker de la liste des propriétés de configuration dans la boîte de dialogue Propriétés du projet – FKEinternet

+0

Oh, merci, je sais comment lier maintenant !!!! Merci. – Coolwei