寫在前面
我在初學(xué)SGX項(xiàng)目中,在安全區(qū)和非安全區(qū)下載和引入openssl庫(kù)的時(shí)候會(huì)遇到各種各樣的問(wèn)題,稀奇古怪的,尤其是openssl的路徑問(wèn)題和make指令編譯出現(xiàn)的問(wèn)題,自己也做了幾天的嘗試解決,下面是我做出的一些解決方法,最終還是解決問(wèn)題了,不對(duì)的地方請(qǐng)大家指點(diǎn)?。?!
問(wèn)題一 終端輸入openssl verison出現(xiàn)openssl: error while loading shared libraries: libssl.so.x.x.x: cannot open shared object file: No such file or directory
master@master:~$ openssl version
openssl: error while loading shared libraries: libssl.so.x.x.x: cannot open shared object file: No such file or directory
解決方法:
1、升級(jí)你的openssl庫(kù)
2、去找你的libssl.so.x.x.x文件
3、做一個(gè)軟鏈接,將原本的地址連接到全局環(huán)境變量能訪問(wèn)到的位置
sudo ln -s /usr/local/lib64/libssl.so.x.x.x /usr/lib64/libssl.so.x.x.x
sudo ln -s /usr/local/lib64/libssl.so.x.x.x /usr/lib64/libssl.so.x.x.x
問(wèn)題二 #include<opensslconf.h>找不到
解決方法:在你的opensslssl安裝目錄中搜索opensslconf.h,并復(fù)制到報(bào)錯(cuò)的路徑,因?yàn)閳?bào)錯(cuò)提示就是在你的openssl安裝路徑缺少這個(gè)文件,這其實(shí)是因?yàn)槲募辉谀抢铮愕檬謩?dòng)復(fù)制過(guò)去,網(wǎng)上還有其他方法,在makefile文件中修改它的編譯位置,我是試過(guò)了,不行
問(wèn)題三 在代碼的頭文件#include<openssl/xxx>文件找不到
但是你發(fā)現(xiàn)你在報(bào)錯(cuò)的路徑下,可以找到這個(gè)文件,或者在你的openssl路徑下也能找到這個(gè)openssl的庫(kù)的頭文件
解決方法1:openssl的頭文件路徑有問(wèn)題,按照上面的方法解決,找到你自己openssl頭文件和庫(kù)文件的準(zhǔn)確路徑
(1)終端輸入命令查看你庫(kù)文件路徑
openssl version -a | grep "OPENSSLDIR" | awk -F': ' '{print $2}'
(2)終端輸入命令查看你的頭文件路徑
dpkg -L libssl-dev | grep "/usr/include/openssl"
你也可以自己去查,一般默認(rèn)的安裝路徑在/usr/include
/或者/usr/local/
路徑下
解決方法2:在makefile的配置出現(xiàn)路徑的上下級(jí)錯(cuò)誤,比如你在makefile中添加的配置路徑到/user/local/include/openssl,那么你在你的文件中就不能寫#include<openssl/xxx>而是直接寫#include<xxx>這個(gè)函數(shù)文件名字即可,要不然你就在makefile文件中添加路徑到上一級(jí)/user/local/include/
問(wèn)題四 使用SGX的時(shí)候,make編譯出現(xiàn)#include<openssl/xxx>文件找不到,添加#include頭文件等問(wèn)題
解決方法:對(duì)非安全區(qū)和安全區(qū)同時(shí)設(shè)置openssl庫(kù)的編譯配置
1、升級(jí)openssl庫(kù)的版本為3.1.4
在我之前的文章中重新安裝openssl3.1.4版本,注意你下載的版本號(hào)在官網(wǎng)要找對(duì)
鏈接:intel SGX學(xué)習(xí)筆記(4)
2、設(shè)置軟連接
sudo ln -s /usr/local/lib64/libssl.so.3 /usr/lib64/libssl.so.3
sudo ln -s /usr/local/lib64/libcrypto.so.3 /usr/lib64/libcrypto.so.3
做到這步之前一定要保證你輸入的openssl version能輸出你的openssl版本,而且?guī)旌瘮?shù)的路徑和頭文件的路徑一定要準(zhǔn)確,否則前功盡棄,后面也沒(méi)用
3、makefile文件配置,這里會(huì)對(duì)非安全區(qū)App.cpp文件和安全區(qū)Enclave.cpp文件進(jìn)行單獨(dú)配置
(1)終端輸入命令查看你庫(kù)文件路徑
openssl version -a | grep "OPENSSLDIR" | awk -F': ' '{print $2}'
(2)終端輸入命令查看你的頭文件路徑
dpkg -L libssl-dev | grep "/usr/include/openssl"
3、SGX項(xiàng)目的makefile文件進(jìn)行修改
這里注意,在SGX的項(xiàng)目的編譯配置中,非安全區(qū)的App.cpp和安全區(qū)的Enclave.cpp是要分開(kāi)配置的你打開(kāi)makefile文件也可以看見(jiàn),你要用到哪個(gè)配置你就在哪個(gè)地方配置
這里就是配置非安全區(qū)的App.cpp的地方,
這里就是配置安全區(qū)的Enclave.cpp的地方
(1)App.cpp配置
在我前面的文章里也說(shuō)明了這個(gè)如何配置,鏈接:intel SGX學(xué)習(xí)筆記(4)文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-819418.html
在這里去添加你的openssl的頭文件路徑
在這里用+=的方式給App_Link_Flags追加你的openssl庫(kù)文件的路徑
(2)Enclave.cpp配置
這里配置openssl的頭文件路徑
這里配置openssl的庫(kù)文件路徑(這里按照格式進(jìn)行添加,用+=追加的方式不太行)文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-819418.html
到了這里,關(guān)于intel SGX學(xué)習(xí)筆記(10):SGX項(xiàng)目openssl在App和Encalve中使用的配置問(wèn)題和openssl庫(kù)的路徑配置問(wèn)題的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!