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集成做的不错
    依赖管理其实本身就是一个矛盾体,如下表
  • 相关阅读:
    设置靠近 水平居中的主体内容Div 的 左侧位置固定的Div
    [转]jQuery页面滚动图片等元素动态加载实现
    [转]LazyLoad.js及scrollLoading.js
    [转]jquery 鼠标放在图片上显示图片的放大镜效果jqzoom_ev-2.3
    [转]java处理高并发高负载类网站的优化方法
    spring-session之二:简单配置
    spring-session之一:简介、使用及实现原理
    UDP协议详解
    Netty Client 重连实现
    netty中的UDP
  • 原文地址:https://www.cnblogs.com/jiftle/p/6525293.html
Copyright © 2011-2022 走看看