住房和城鄉(xiāng)建設(shè)廳網(wǎng)站辦事大廳百度小程序?qū)W(wǎng)站seo
文章目錄
- 需求
- Clion連接服務(wù)器內(nèi)的Docker
- Docker
- CLion
- Docker內(nèi)配置HElib庫
- 參考
需求
- HElib庫是用C++編寫的同態(tài)加密開源庫,一般在Linux下使用
- 為了不混淆生產(chǎn)環(huán)境,使用Docker搭建HElib運(yùn)行環(huán)境
- 本地在Windows下開發(fā),使用的IDE為Clion,本地?zé)oHElib運(yùn)行環(huán)境
- 綜上,需求是,讓CLion連接搭建好HElib的Docker上,在本地CLion中編寫代碼,在遠(yuǎn)程服務(wù)器的Docker里運(yùn)行代碼
Clion連接服務(wù)器內(nèi)的Docker
Docker
- Docker安裝略
- Docker創(chuàng)建容器
命令解釋:–name指定容器名字;-p指定端口,用于服務(wù)器端口映射到Docker內(nèi)端口,由于后續(xù)需要通過ssh連接Docker容器,故映射到22端口;使用的鏡像為ubuntu:20.04,鏡像隨意;bash指定運(yùn)行終端sudo docker run -it --name helib -p 12022:22 ubuntu:20.04 bash
PS. 可以加個-v參數(shù)指定掛載目錄 - 進(jìn)入Docker后,先退出然后再重啟進(jìn)入(想讓容器一直運(yùn)行不關(guān)閉我就這么干的)
在容器內(nèi):exit # 退出后容器也會退出 sudo docker start helib # 啟動容器 sudo docker exec -it helib bash # 進(jìn)入容器,之后再退出容器也不會退出了
- 安裝ssh等服務(wù)
apt update apt install openssl openssh-server -y echo "PermitRootLogin yes" >> /etc/ssh/sshd_config service ssh restart passwd root # 設(shè)置Docker容器的root密碼,用于后續(xù)連接
- 測試連接
- 在Docker外,用ssh測試連接:
ssh root@localhost -p 12022
,輸入Docker的root密碼,成功如下:
- 在Docker外,用ssh測試連接:
CLion
- Settings -> Build… -> Toolchains -> ‘+’ -> Remote Host
- 可以自定義名字,然后設(shè)置連接
- 按下圖填寫,注意port應(yīng)該填寫的是Docker對外映射的端口,我這里就應(yīng)該是12022,而不是22,測試連接沒問題就可以了
- 設(shè)置CMake:Settings -> Build… -> CMake,指定toolchains就行
- 另外,如果想把代碼啥的也同步到Docker上,則添加SFTP:Settings -> Build… -> Deployment,添加SFTP,設(shè)置Mappings,見下圖:
- 下面這個看自己情況設(shè)置
至此,CLion可以順利連接到服務(wù)器里的Docker啦
Docker內(nèi)配置HElib庫
參考官方文檔:HElib/INSTALL.md
-
apt安裝依賴:g++, cmake這些
-
克隆項(xiàng)目,在Docker內(nèi)或者在Docker外對應(yīng)掛載的目錄下克隆都行
-
按照官網(wǎng)教程編譯后,在build路徑下會得到一個目錄
helib_pack
,建議將其放至全局變量里:cp -r helib_pack /usr/local
,這樣在編譯自己寫的程序時不需要指定路徑,在Clion里也能檢測到這些依賴 -
測試部分參考:HElib/examples/README.md
-
自己編寫程序時,注意CMakeList.txt的寫法,注意文件路徑是否寫對,自己編寫的程序路徑不同,CMakeList就需要修改對應(yīng)的路徑,下面是我的CMakeList,大概能改的地方圈出來了
參考
以clion為例記錄一次基于docker環(huán)境配置開發(fā)-CSDN