相关疑难解决方法(0)

编译时-pthread和-lpthread之间的差异

是什么区别gcc -pthreadgcc -lpthread它在编译多线程程序中使用?

multithreading gcc pthreads thread-safety compiler-flags

99
推荐指数
3
解决办法
5万
查看次数

未定义的md5引用

#include <openssl/md5.h>
void mMD5(unsigned char * packet, int size) {

    unsigned char* res;

    MD5((unsigned char*)&packet, size, (unsigned char*)&res);

    for(int i=0; i<MD5_DIGEST_LENGTH; i++) {
        printf("%02x", res[i]);
    }
}
Run Code Online (Sandbox Code Playgroud)

我得到错误:未定义的引用 MD5

谁能帮我?

c c++ encryption md5

5
推荐指数
1
解决办法
1万
查看次数

在Ubuntu和OSX上编译和链接OpenSSL

尝试1,香草链接到图书馆

我正在尝试使用修补版本的OpenSSL(因此DTLS更易于使用).OpenSSL在

/usr/local/openssl-1.0.1c
Run Code Online (Sandbox Code Playgroud)

./include/openssl子文件夹有大量的头文件(我认为应该这样):

lrwxrwxrwx 1 root root   22 Dec 25 05:49 aes.h -> ../../crypto/aes/aes.h
lrwxrwxrwx 1 root root   24 Dec 25 05:49 asn1.h -> ../../crypto/asn1/asn1.h
lrwxrwxrwx 1 root root   28 Dec 25 05:49 asn1_mac.h -> ../../crypto/asn1/asn1_mac.h
...
Run Code Online (Sandbox Code Playgroud)

GCC链接到include文件夹并给我一个错误 - 它无法找到SSL.我或多或少地和其他人一样使用它.这适用于OSX(10.6),但不适用于Ubuntu:

~$ gcc -L/usr/local/openssl-1.0.1c/include -lssl -lcrypto  -o server server.c
server.c:20:25: fatal error: openssl/ssl.h: No such file or directory
compilation terminated.
Run Code Online (Sandbox Code Playgroud)

尝试2,/ usr/include中的库的符号链接

那么,我尝试在/ usr/include中创建一个指向OpenSSL的符号链接:

sudo ln -s /usr/local/openssl-1.0.1c/include/openssl /usr/include/openssl
Run Code Online (Sandbox Code Playgroud)

并重新尝试编译:

~$ gcc -L/usr/local/openssl-1.0.1c/include -lssl -lcrypto  -o server server.c …
Run Code Online (Sandbox Code Playgroud)

c linux macos gcc

5
推荐指数
1
解决办法
7985
查看次数