采用cmake構建工程
編譯時出錯:
CMakeFiles/EmailAlarm.dir/SSLEmail.cpp.o:在函式‘SslSmtpEmail::Connect()’中:
SSLEmail.cpp:(.text+0x2b5e):對‘OPENSSL_init_ssl’未定義的參考
SSLEmail.cpp:(.text+0x2b6d):對‘OPENSSL_init_crypto’未定義的參考
SSLEmail.cpp:(.text+0x2b7c):對‘OPENSSL_init_ssl’未定義的參考
SSLEmail.cpp:(.text+0x2b81):對‘TLS_client_method’未定義的參考
collect2: 錯誤:ld 回傳 1
查看cmake生成的link.txt檔案為:
/usr/local/bin/c++ -m64 -std=c++17 -pthread -ldl -rdynamic CMakeFiles/EmailAlarm.dir/EmailAlarm.cpp.o CMakeFiles/EmailAlarm.dir/SSLEmail.cpp.o CMakeFiles/EmailAlarm.dir/main.cpp.o -o EmailAlarm -L/home/bettercomm/local/lib -Wl,-rpath,/home/bettercomm/local/lib: /home/bettercomm/local/lib/common.a -Wl,-Bstatic -luuid -Wl,-Bdynamic -lssl -lcrypto
拿出來手動鏈接也是一樣的錯誤,但是把CMakeFiles/EmailAlarm.dir/SSLEmail.cpp.o直接改成指定路徑下的cpp檔案就可以鏈接成功。
有沒有人遇到過這種問題?
uj5u.com熱心網友回復:
問題已解決,應該是openssl的版本問題,至于為何采用cpp鏈接能夠成功,就不得而知了。轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/44275.html
標籤:C++ 語言
上一篇:strcmp函式運行例外
下一篇:學生成績管理系統
