zoukankan      html  css  js  c++  java
  • c++包管理工具conan

    Conan is a portable package manager, intended for C and C++ developers, but it is able to manage builds from source, dependencies, and precompiled binaries for any language.
    Conan是一个跨平台的包管理工具,面向c和c++开发者,但是他能够从源码,依赖和预编译二进制包。
     
    biicode 因为2015年因为经营原因关闭了,Conan就成为接班人,项目截至2017年3月仍然非常活跃。
     
    官方网站:
    https://www.conan.io/
     
    作者:骆铮
    链接:https://www.zhihu.com/question/47298264/answer/105388121
    来源:知乎
    著作权归作者所有,转载请联系作者获得授权。

    之前在管理依赖的时候尝试过,大概说说第一印象:
    • 自身安装包:全平台覆盖,有完善的binary这很方便。但是基于Python可能在一些场合会带来麻烦,更倾向于搞出一个bulkcompile的.cpp,这样可以无痛切换到conan而不会因为自身而带来额外的依赖,毕竟不是所有项目都希望引入Py。
    • 是采用Binary还是Source是每个包管理都会遇到的问题,binary需要维护,source对于Cpp来说编译速度太慢。目前Conan貌似是对大包提供了Binary,找不到时会fallback到Source上去,看起来是一个比较好的解决方案。但是不知道二进制兼容性(RTTI、cxxabi)这类的做得怎么样(更新:看C/C++ Open Source Package Manager ,大概对每个编译器大版本都提供了Release和Debug两个二进制版本,这样解决了abi问题,但RTTI估计是没戏了)。不过好在可以自己架服务器提供包。
    • 目前的官方包还是太少,像leveldb之类的都找不到
    • CMake集成做的不错
    依赖管理其实本身就是一个矛盾体,如下表
  • 相关阅读:
    极简的js点击组图切换效果
    原生js登录创建cookie
    原生js的表单验证
    Inno Setup 检测已安装的.NET Framework 版本
    IntelliJ IDEA中创建并运行scala应用程序
    解决eclipse中maven出现的Failure to transfer XXX.jar的问题
    初识python yield
    解决pycharm无法导入本地包的问题(Unresolved reference 'tutorial')
    理解Python的with as语句
    scrapy写爬虫是出现no module named win32api错误
  • 原文地址:https://www.cnblogs.com/jiftle/p/6525293.html
Copyright © 2011-2022 走看看