C/C++包管理工具Conan简介
? ? Conan是一個開源的、跨平臺的、去中心化的C和C++包管理器,它的源碼在https://github.com/conan-io/conan ,License為MIT,最新發(fā)布版本為1.38.0,由Python實現(xiàn)。版本更新較頻繁,但保持向前兼容。
? ? Conan特點:
? ? (1).它是完全去中心化的:用戶可以將他們的包托管在他們的私有服務(wù)器上,與JFrog Artifactory 和ConanCenter集成。具有客戶端----服務(wù)器架構(gòu),客戶端可以從不同的服務(wù)器(“遠(yuǎn)程”)獲取包,也可以將包上傳到不同的服務(wù)器,similar to the “git” push-pull model to/from git remotes.
? ? (2).它適用于所有平臺:包括Linux、OSX、Windows、Android、iOS,也支持嵌入式,還支持交叉編譯。
? ? (3).管理二進制文件:它可以為任何配置和平臺甚至包括交叉編譯創(chuàng)建、上傳和下載二進制文件,從而節(jié)省大量開發(fā)和持續(xù)集成時間。二進制兼容性也可以配置和定制。在所有平臺上以相同的方式管理所有工件。
? ? (4).與任何構(gòu)建系統(tǒng)集成,包括任何專有和定制系統(tǒng):為主要構(gòu)建系統(tǒng)(CMake、Visual Studio MSBuild、Makefiles、Meson等)提供經(jīng)過測試的支持。
? ? (5).可擴展。
? ? ConanCenter:是一個中央公共存儲庫,包含數(shù)百個流行的開源庫包,以及許多針對主流編譯器版本的預(yù)編譯二進制文件。
? ? JFrog Artifactory Community Edition (CE):是推薦的、免費的、Conan服務(wù)器,可在你的控制下私下托管你自己的包。它是JFrog Artifactory for Conan包的免費社區(qū)版。
? ? Conan client:命令行工具,用于創(chuàng)建包和使用包,可創(chuàng)建本地倉庫支持離線使用。
? ? Conan server:可私有化部署的服務(wù)器,是一個與Conan客戶端一起分布的小型服務(wù)器。 它是一個簡單的開源實現(xiàn),提供基本功能。
? 安裝Conan:這里通過Conda安裝Conan,關(guān)于Conda的介紹可以參考:https://blog.csdn.net/fengbingchun/article/details/86212252 ,python的版本需要3.8
conda create -n test_conan python=3.8
conda activate test_conan
pip install conan #conda install -c conda-forge conan
? ? 在Conan中,一個包的定義:包名/版本@用戶/渠道
? ? Conan客戶端常用命令:
? ? (1).查看conan版本:conan --version
? ? (2).搜索軟件包,如opencv:conan search opencv* -r=all (或-r=conan-center)
? ? (3).顯示所有源:conan remote list
? ? (4).通過conanfile.txt安裝依賴包:conan install .
? ? 下面是下載openssl 1.0.2s依賴包示例,conanfile.txt內(nèi)容如下:
[requires]
openssl/1.0.2s[generators]
cmake
? ? 在conanfile.txt目錄下執(zhí)行以下命令:
~/Disk/anaconda3/envs/test_conan/bin/conan install . -s arch=x86_64 -s compiler=gcc -s compiler.libcxx=libstdc++ -s compiler.version=4.9 -s os=Linux --build=openssl --build=zlib
? ? 執(zhí)行結(jié)果如下圖所示,會在~/.conan/data/openssl/1.0.2s目錄下生成對應(yīng)的頭文件和庫:
? ? 執(zhí)行上述命令前,在當(dāng)前目錄下僅有conanfile.txt一個文件,執(zhí)行完后會多出幾個文件,如下圖所示:
總結(jié)
以上是生活随笔為你收集整理的C/C++包管理工具Conan简介的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PyTorch简介
- 下一篇: Conan客户端简单使用示例