c++如何管理管理第三方代码

2018-04-25 17:57:27 +08:00
 ray1888

之后项目可能需要在 Python 下面用 c++写一些库,请问各位 c++大佬,你们都是怎样去管理要用到的第三方代码?(因为之前写的语言都有包管理器这个东西,不太了解)

3533 次点击
所在节点    程序员
8 条回复
goreliu
2018-04-25 18:37:10 +08:00
如果是用 linux 的话,可以用系统的包管理器来管理依赖,这样是最省事的(比如不用加 -I -L 之类的参数编译)。Windows 的话可能复杂些,如果是 Mingw 系列,可以用 MSYS2,如果是 VS 系列,有多种方法,具体得看用的是什么库。
changnet
2018-04-25 18:37:22 +08:00
git submodule
gnaggnoyil
2018-04-25 19:36:30 +08:00
尽量让目标用户能通过所支持的环境中系统默认的包管理器就能安装上满足要求的依赖.(Windows 下 Visual Studio 有 vcpkg,MinGW 有 MSYS2 的 pacman),如果不能也尽量写清楚要安装满足要求的依赖需要哪些步骤.

另外如果你的库要跨多个平台的话那么你大概率要处理不同平台之间不同的的依赖配置问题.为了解决这个问题那么你大概率需要 CMake.另外如果 LZ 要写 CPython 扩展的话也要大概了解下 CPython 扩展的文件是如何被组织的.当然,这种组织方式也可以用 CMake 来完成,无论是单独 CMake 还是 CMake+distutils/setuptools.
congeec
2018-04-25 22:25:32 +08:00
其实方案挺多的
了解下 Conan
wevsty
2018-04-25 22:27:25 +08:00
Linux 就用系统的包管理就行了。
Win 那只有自己去整理了。
lbtinglb
2018-04-26 02:08:22 +08:00
c++ under Windows 可以看看微软最近新出的 vcpkg。https://github.com/Microsoft/vcpkg
MeteorCat
2018-04-26 13:12:12 +08:00
cmake
find_package(XXX require)
判断没有执行外部 sh 脚本安装部署
joyee
2018-04-27 03:01:41 +08:00
看第三方库的类型,如果是依赖 API/ABI 稳定性有保障安装包也很广泛分布的项目的话,很多都是让用户自行安装依赖,然后用 cmake 之类的工具在系统里找依赖生成 Makefile 动态链接上去的。平台型项目希望自己控制依赖版本的话就直接把依赖的代码放进一个文件夹了,一般自己有脚本用来更新依赖,然后静态链接,但我见过被 Linux 发行版自带包管理器改写成动态链接自己的包给他们的用户的……

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/449820

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX