srs编译报错

参考

https://blog.csdn.net/iw1210/article/details/52086989

 

../../objs/openssl/lib/libcrypto.a(threads_pthread.o): In function `CRYPTO_THREAD_lock_new':
threads_pthread.c:(.text+0x25): undefined reference to `pthread_rwlock_init'
 

 

mv trunk/ /usr/local/srs
cd /usr/local/srs

 ./configure && make

修改configure,添加-lpthread

执行./configure, make又报错

srs编译报错_第1张图片

添加 -lpthread

srs编译报错_第2张图片

 

最后编译成功

srs编译报错_第3张图片

 

./objs/srs -c conf/srs.conf

检查SRS是否启动成功:
# ps -ef | grep srs

 

 

gcc obj/Debug/main.o -L/usr/local/openssl/lib -lssl -lcrypto -ldl -lpthread -o main

原因分析:

在链接这个库的时候一定要注意2个问题:

1.openssl库的版本问题,请直接链到你需要的openssl库路径,比如我的就是/usr/local/openssl/lib,

2.注意-lssl -lcrypto要写在-ldl -lpthread前面,这四个必须要。

相关知识:

-L :此选项是指定链接库的文件夹地址

-l(小写的L):-lssl 即是寻找/usr/local/openssl/lib目录下的 libssl.a 这个库,编译器会自动寻找 libssl.a或者libssl.so

-I(大写的i):指定头文件的文件夹地址

 

参考

https://blog.csdn.net/azhangyi188/article/details/51063880/

 

 

 

 

你可能感兴趣的:(视频)