如何在 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.h
和 sodium
文件夹复制到我的项目中。
这里是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 它在.
看了installation page中Windows的编译部分,还是很迷茫,希望高手赐教
我从 here 下载了 LATEST.tar.gz
。
之后,我将 libsodium-1.0.12\src\libsodium\include
中的 sodium.h
和 sodium
文件夹复制到我的项目中。
这里是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 它在.