如何在 Visual Studio 中正确包含 <sodium.h>?

How can I include <sodium.h> correctly in Visual Studio?

看了installation page中Windows的编译部分,还是很迷茫,希望高手赐教


我从 here 下载了 LATEST.tar.gz

之后,我将 libsodium-1.0.12\src\libsodium\include 中的 sodium.hsodium 文件夹复制到我的项目中。

这里是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");
}

我在编译时遇到了这些错误:

Error LNK1120 2 unresolved externals

Error LNK2019 unresolved external symbol __imp__randombytes_buf referenced in function _main

Error LNK2019 unresolved external symbol __imp__randombytes_uniform referenced in function _main

我没有收到像 "cannot open sodium.h" 这样的错误。

我该如何解决这个问题?

感谢任何帮助。

您的错误告诉您 link 时间出现问题 - 因此您的问题不在于包含 sodium.h。有一个库未添加到您的项目中。你不能直接将库复制到你的项目目录,你需要告诉 Visual Studio 到 link 它在.