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

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

提问人:wei 提问时间:5/27/2017 更新时间:5/27/2017 访问量:3225

问:

我在安装页面中阅读了 Windows 上的编译部分,但我仍然很困惑,希望一些专家能启发我。


我从这里下载。LATEST.tar.gz

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

代码如下:

#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");
}

我在编译时遇到以下错误:

错误LNK1120 2 个未解决的外部问题

错误LNK2019无法解析的外部符号__imp__randombytes_buf 在函数 _main 中引用

错误LNK2019未解析的外部符号__imp__randombytes_uniform 在函数 _main 中引用

我没有收到“无法打开sodium.h”之类的错误。

我该如何解决这个问题?

任何帮助都是值得赞赏的。

C 头文件 visual-studio-2017 未解析的外部

评论

0赞 codeconscious 5/27/2017
所以看起来你没有正确链接库或根本没有链接?
0赞 wei 5/27/2017
但是我已经将 sodium.h 和 sodium 文件夹放在我的项目文件中并包含在我的源文件中
1赞 codeconscious 5/27/2017
你不只是把它放在文件夹中,让编译器了解它想用这些文件做什么,你必须链接并告诉编译器你从哪里来,包括头文件和其他东西。

答:

3赞 FKEinternet 5/27/2017 #1

您的错误告诉您在链接时存在问题 - 因此您的问题不在于包含 .有一个库未添加到您的项目中。不能只是将库复制到项目目录,还需要告诉 Visual Studio 将其链接到中。sodium.h

评论

0赞 wei 5/27/2017
如何告诉 VS 将其链接?
0赞 FKEinternet 5/27/2017
这是在“项目属性”对话框中“配置属性”列表的“链接器”部分完成的