我正在尝试编译调用OpenSSL MD5函数的简单C代码,用MinGW64生成加密字符串,但是我收到错误 "collect2: error: ld returned 1 exit status"

调用MD5功能的我的C代码如下:

#include <stdio.h>
#include <string.h>
#include <openssl/md5.h>

int main() {
    unsigned char digest[MD5_DIGEST_LENGTH];
    char string[] = "happy";

    MD5((unsigned char*)&string, strlen(string), (unsigned char*)&digest);

    char mdString[33];

    int i = 0;
    for(i = 0; i < 16; i++)
         sprintf(&mdString[i*2], "%02x", (unsigned int)digest[i]);

    printf("md5 digest: %s\n", mdString);

    return 0; 
}

我用来编译这段代码的命令是 "x86_64-w64-mingw32-gcc program.c -I /usr/include/ -lcrypto -lssl -o output.exe "

有没有办法得到实际的错误或我错过了什么?