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又報錯

添加 -lpthread

 

最後編譯成功

 

./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/

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章