是什么区别gcc -pthread和gcc -lpthread它在编译多线程程序中使用?
#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
谁能帮我?
尝试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)