作者adxis (Acquire higher)
看板C_and_CPP
标题Re: [问题] cmake project管理3rd party library
时间Wed Dec 30 00:47:49 2020
※ 引述《Mensholaten (REAL)》之铭言:
: 目前在Linux环境下编写 cmake project (corss compile)
: 会用到的3rd party library是采用事先下载好source code和自己的code同时编译
: 有点苦恼的地方是 不知道该如何用正规作法将library的路径导入至自己的project
: 目录结构大概类似这样
: root
: --- my_src
: --- third_party
: --- aaa
: --- libaaa
: --- ccc
: --- libccc
: find_package只能用在预先安装好的package 没办法用 配置阶段就会fail
: libaaa目录为3rd party library的包含CMakeLists的原生资料夹
: 额外在创建aaa里另外增加CMakeLists
: 里面设定library header/so的路径为编译资料夹(BINARY_SOURCE)的路径
: 并且将这些变数设定为CACHE让其他target include / link 时使用
: 虽然这样做可以正确编译 但其实是额外多动了一些手脚才达成
: 还是想知道有没有更正确的作法?
可以试试看 Hunter 开源专案,他有 packages 管理能力,package list 是在
github 维护,用法可参考下方连结
https://hunter.readthedocs.io/en/latest/quick-start/boost-components.html
除了连结范例中的 boost libraries ,这里有列出目前支援的 packages
https://hunter.readthedocs.io/en/latest/packages/all.html
原本是一人专案,目前已经由社群接手维护,运作方式是根据 package list
去抓取特定版本函示库的原始码在本地端编译,由於有快取的设计,不同专案
在同一台机器上是可以共享已经编译过的函示库二进位档案。
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 101.10.55.110 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1609260471.A.E8B.html
1F:推 Killercat: 不过业界比较通用的是conan就是 但是这个也不错 XD 12/30 10:16
2F:→ Killercat: 但是conan真的难用到爆炸..... 希望这个能好用点 12/30 10:16