c++包管理工具conan
链接: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集成做的不错
依赖管理其实本身就是一个矛盾体,如下表
<img src="https://pic3.zhimg.com/7a08782d5cce9862aef7ca76f7132ef2_b.png" data-rawwidth="720" data-rawheight="311" class="origin_image zh-lightbox-thumb" width="720" data-original="https://pic3.zhimg.com/7a08782d5cce9862aef7ca76f7132ef2_r.png">
c++包管理工具conan的更多相关文章
- c++ cmake及包管理工具conan简单入门
cmake是一个跨平台的c/c++工程管理工具,可以通过cmake轻松管理我们的项目 conan是一个包管理工具,能够自动帮助我们下载及管理依赖,可以配合cmake使用 这是一个入门教程,想深入了解的 ...
- Python黑帽编程1.3 Python运行时与包管理工具
Python黑帽编程1.3 Python运行时与包管理工具 0.1 本系列教程说明 本系列教程,采用的大纲母本为<Understanding Network Hacks Attack and ...
- 包管理工具Carthage使用
iOS项目中第三方开源库的工具有Cocoapods和Carthage,swift官方出了一个包管理工具SPM(Swift Package Manager). 首先,大体讲一下Cocoapods和Car ...
- Node包管理工具
Node包管理工具 只是简单的介绍一些工具的使用,有利于开发过程.除了介绍Node包管理工具,还介绍了前端打包工具,前端模块管理工具 Node包管理工具: --npm --cnpm ...
- godep 包管理工具
godep是解决包依赖的管理工具 安装 go get github.com/tools/godep 成功安装后,在GOPATH的bin目录下会有一个godep可执行的二进制文件,后面执行的命令都是用这 ...
- 【转载】Python的包管理工具Pip
接触了Ruby,发现它有个包管理工具RubyGem很好用,并且有很完备的文档系统http://rdoc.info 发现Python下也有同样的工具,包括easy_install和Pip.不过,我没有细 ...
- Python的包管理工具Pip (zz )
Python的包管理工具Pip 接触了Ruby,发现它有个包管理工具RubyGem很好用,并且有很完备的文档系统http://rdoc.info 发现Python下也有同样的工具,包括easy_ins ...
- python 包管理工具
python 包管理工具 Python当前的包管理工具链是 easy_install/pip + distribute/setuptools + distutils,显得较为混乱. 而将来的工具链组合 ...
- Python 包管理工具解惑
Python 包管理工具解惑 本文链接:http://zengrong.net/post/2169.htm python packaging 一.困惑 作为一个 Python 初学者,我在包管理上感到 ...
随机推荐
- Java基础1-反射篇
1.页首请关注 思维导航大纲 2.大牛文章学习: 序号 博主 主要内容 1 sinat_38259539 总结的较全面的反射内容 2 3.自己的理解: 3.1.本文大纲 3.2.正文 1.获 ...
- m2a-vm超频的方法
m2a-vm超频的方法 此帖对"华硕超频俱乐部"的评论 要超频的话,bios要进行相应的设置, 1.jumperfree选项下 cpu multiplier 改cpu的倍频 ...
- Linux-JAVA-JDK完整配置过程
JDK是目前很流行的开发工具包,内含jre是支撑jvm运行的组件. 01.jdk下载 http://www.oracle.com/technetwork/java/javase/downloa ...
- Spring Framework Ecosystem – Introduction to Spring Projects
来自于:http://springtutorials.com/spring-ecosystem/ Hello and Welcome to Spring Tutorials Blog! Is it f ...
- nexus 介绍
http://juvenshun.iteye.com/blog/349534
- Warning: RPMDB altered outside of yum.的解决办法
错误提示: Warning: RPMDB altered outside of yum 解决办法: 删除yum的历史记录rm -rf /var/lib/yum/history/*.sqlite 上面的 ...
- 【java设计模式】之 代理(Proxy)模式
代理模式的核心作用就是通过代理,控制对对象的访问.这跟实际中是一样的,比如说明星都有经纪人,这就是一个代理,比如有人要找某明星拍戏,那么首先处理这事的是他的经纪人,虽然拍戏需要自己拍,但是拍戏前后的一 ...
- [原创] Java JDBC连接数据库,反射创建实体类对象并赋值数据库行记录(支持存储过程)
1.SqlHelper.java import java.lang.reflect.*; import java.sql.*; import java.util.*; public class Sql ...
- 使用和学习 ES2015
调试网站 http://babeljs.io/repl/ 扩展阅读: # export.exports.modules.exports 和 require .import 的一些常用方法和套路 htt ...
- chromedriver 下载地址
重要的事情说三遍 chromedriver 下载地址 chromedriver 下载地址 chromedriver 下载地址 http://chromedriver.storage.googleapi ...