管理第三方库安装C
Manage 3rd party libraries installation C++
我想知道如何智能地管理第三方C 依赖性Linux(Ubuntu)的建筑物和安装。我目前设置的方式是一个具有所有必要压缩第三方来源的git-lfs。然后,我使用我写的shell脚本来安装所有必要的系统依赖项,然后解压缩并构建所需的库。此Shell脚本还需要注意设置所有路径,以便我们的源代码可以轻松地链接到第三方库。
我们脚本的示例命令是./install opencv或./install everything
但是,在过去的几个月中,脚本变得很大,有时会在某些库已经安装或其他次要问题时断开。因此,我想用一些更聪明和有用的东西代替它。我目前一直在考虑编写某种Python脚本,但是仅将语言从Shell更改为Python并不是很大的优势。因此,我希望是否有任何特定的Python库可以帮助我管理这些库。
我已经研究了厨师和其他自动化的东西之类的东西,但这对于我正在从事的小型项目来说是过分的。
我想知道其他人在这个第三方管理中使用了什么,因为可悲的是C 没有PIP。
我将jhbuild
用于这种事情(如果我理解您正确地做的事情)。它来自GNOME项目(他们使用它来从源构建整个桌面),但是对于任何一组项目都很容易自定义。最近的Ubuntus中包装的jhbuild
效果很好。
您编写了一些XML来描述每个项目:在哪里下载源,应用的补丁,使用哪些配置标志,其依赖于哪些项目等等;然后,当您输入jhbuild build mything
时,它可以算出要构建的内容,并以什么顺序进行操作。它对更改非常明智,因此,如果您在构成堆栈的一个项目中编辑源文件,则只会重建受影响的零件。
例如,我为FFTW3(出色的快速傅立叶变换库:
) <autotools id="fftw3"
autogen-sh="configure"
autogenargs="--disable-static --enable-shared --disable-threads"
>
<branch
repo="fftw"
module="fftw-3.3.4.tar.gz"
/>
<dependencies>
<dep package="libiconv"/>
</dependencies>
</autotools>
可能有明显的含义。这是通过释放tarball构建的,但也可以从git构建。它对cmake
项目感到满意。jhbuild
用Python编写,因此自定义很容易。多亏了侏儒,包括许多常见的图书馆。
我实际上使用它来构建Windows二进制文件。您可以将其设置为使用交叉补偿器构建所有内容,然后将其放入Docker中。它使其成为任何人都能在任何平台(几乎)平台上构建大型且复杂的应用程序的单线。当然,您也可以使用它来进行自动化的夜间构建。
周围可能有更好的事情,但对我来说效果很好。
- 将数组作为参数传递给函数安全吗?作为第三方职能部门,可以探索他们想要的之外的其他元素
- 在Ubuntu 16.04上安装Cilk时出现问题
- 在CMakeLists.txt的安装功能中使用.cmake文件有什么用
- C++:如何在CLion IDE中安装Boost
- 如何包装第三方DLL在R中使用
- 安装opencv失败-粘贴CMakeError.log的内容
- 在cygwin中测试新的boost安装时出现cpp错误
- 有人安装"IITB Simplecpp in mac"吗?
- 将 OpenCV 与 CMAKE 中的项目一起构建为第三方库的正确方法
- 我可以在 Arduino 的库文件夹之外安装库吗?
- Mingw-64 在构建和安装后不会编译 openCV 代码
- 第三方 API 中的编译错误 - Visual Studio
- 为什么构建目录中新构建的共享库与安装目录中的副本具有不同的依赖项集?
- CMake - 安装第三方 dll 依赖项
- 如何从 github 为 c++ 项目安装第三方库
- 在OSX中安装用于QT 5.5的第三方模块
- 管理第三方库安装C
- 如何安装第三方库
- 第三方C++库,安装位置
- 在Mac OS X上安装第三方库