Re: [问题] Conan

楼主: Neisseria (Neisseria)   2018-06-14 15:47:25
※ 引述《XAMDOU (萨姆德)》之铭言:
: 最近在看 c++ 的 package management framework
: 有看到一套 conan: https://conan.io/
: 搜寻一下资料感觉还是懵懵懂懂
: 各位大大有推荐的学习资源吗?
: 或是有没有任何一些好/坏心得分享?
: 感谢各位大大!
原本 C (和 C++) 没有什么套件的概念
在类 Unix 系统上就是直接用标头档和函式库 (动态或静态)
顶多 Windows 上多个 .lib 来储存公开接口相关的资讯
许多类 Unix 系统会额外包装这些 C (或 C++) 函式库
使用起来的感觉和其他现代语言的套件差不多
但骨子里其实还是使用标头档和函式库 只是管理上比较方便
由于 C (和 C++) 没有规范套件的格式
基本上就是每个系统各自做自已的轮子 而且还互不相通
另外,C (和 C++) 要从原始码编译
不像 Java 那样以虚拟机器将系统抽象化
现行的做法是每个系统先预先编好原始码,以 binary 形式发布
另外一种做法是将编译的流程自动化,像 Homebrew
回到一开始提的 conan,这套软件基本上就是综合考虑以下两件事而成的产物
- 编译自动化 (build automation)
- 软件套件系统 (package management system)
因为要考虑和现行软件专案接轨,所以看起来比较复杂
但小弟还没有机会玩 conan,或许其他板友会有心得
作者: windows2k (程式宅 <囧>)   2018-06-14 17:17:00
可以看看vcpkg
作者: KanzakiHAria (神崎・H・アリア)   2018-06-14 19:50:00
早期的语言没有套件管理的概念 所以很多是靠unix系的套件管理员去拉静态动态函式库也因为没有套件管理的概念 版本这件事一直是大问题比较好的会写cmake去绑定版本光是不同套件就有不同的flag需求就算有版本管理其实也不够用更别说三家编译器行为和flag不一样之外 不同系统环境还会影响 #define 的程式区间对我这个废物C++开发者而言conan超没用qqlearning框架遇到不同的显卡 不同的cuda driver大部分的时候还是要拉source去重新编成自己的环境
作者: XAMDOU (萨姆德)   2018-06-14 21:13:00
我的经验也是自己去抓source跟着README把东西编起来看到conan很期待可以有更方便的作法,不知道是不是我想像的我不是什么大大 >_< 我常用的平台是 linux 和 macIDE用CLion,最近才注意到CLion有支援cmake/conan很感兴趣

Links booklink

Contact Us: admin [ a t ] ucptt.com