无法编译链接 openssl 的 .c 程序

我有以下简单的 openssl 程序:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <openssl/aes.h>

int main() {
    AES_KEY aes;
    unsigned char key[] = {0x5A,0x5A,0x5A};

    int result;
    result = AES_set_encrypt_key(key,128,&aes);
    if (result < 0) {
        printf(Unable to generate key: "%i",result);
        exit(-1);
    }

    // Each round is 16 bytes (128 bits)
    for (int i = 0; i < (aes.rounds + 1) * 4; i = i + 4) {
        printf("0x%x 0x%x 0x%x 0x%x\n",aes.rd_key[i],aes.rd_key[i+1],aes.rd_key[i+2],aes.rd_key[i+3]);
    }

    return 0;
}

我正在尝试使用命令编译它

gcc -I/usr/local/include/openssl -o generateKey -lcrypto -lssl -L/usr/local/lib generatekey.c

/usr/local/include/openssl 包含 aes.h 所以我认为我需要它。 usr/local/lib 包含 libcrypto.alibcrypto.solibssl.alibssl.so,所以我认为我也需要这些。当我尝试编译时出现错误

generate_key.c: undefined reference to `AES_set_encrypt_key`
collect2: error: ld returned 1 exit status

还有其他地方我应该链接到以查找 openssl 库吗?我在 Ubuntu 16.04 上运行它。

我已经尝试过 sudo apt-get install libssl-dev 以确保为开发安装了 openssl。

oxiang741 回答:无法编译链接 openssl 的 .c 程序

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/427.html

大家都在问