我的问题是关于通过GCC在Mac上使用OpenSSL。
#include <stdio.h>
#include <openssl/rand.h>
int main()
{
unsigned char key[128];
Rand_bytes(key,128);
return 0;
}
我有以下代码,我正在尝试使用GCC进行编译。这是我进入命令行的内容
gcc -o ossl ossl.c -lcrypto -lssl
但是我收到以下错误。
架构x86_64的未定义符号: “_Rand_bytes”,引自: _main在cc2hf0Ij.o中 ld:找不到架构x86_64的符号 collect2:ld返回1退出状态
在使用openssl时我没有经验。我为什么收到Undefined symbols for architecture x86_64
?
答案 0 :(得分:1)
int main() { unsigned char key[128]; Rand_bytes(key,128); return 0; }
尝试RAND_bytes
:
int main()
{
unsigned char key[128];
int rc = RAND_bytes(key,sizeof(key));
if(rc != 1)
/* Handle failure */
...
OPENSSL_cleanse(key,sizeof(key));
return 0;
}
OpenSSL文档位于RAND_bytes(3)
。