C++ 如何编写一个可以下载和安装许多软件包(c+;+;)的程序?

C++ 如何编写一个可以下载和安装许多软件包(c+;+;)的程序?,c++,linux,opencv,C++,Linux,Opencv,我的具体案例: 我尝试在C++中实现一个迷宫求解器,它在一个灰度图像中,用已解决的路径输出相同的图片。我在网上查看了一下,发现我应该使用OpenCV,它还需要其他软件包。我希望我的程序的用户能够运行该程序,该程序检查这些软件包是否已经安装。如果没有安装所需的软件包,我希望能够在机器(Linux)上安装这些程序。我的程序的其余部分将使用这些包来解决这个迷宫 一般情况: 我如何创建一个程序,在执行时安装该程序所需的软件包以供以后使用?这可能吗?这叫什么(如果它存在的话),这样我就可以读到它了?最后,

我的具体案例

<>我尝试在C++中实现一个迷宫求解器,它在一个灰度图像中,用已解决的路径输出相同的图片。我在网上查看了一下,发现我应该使用OpenCV,它还需要其他软件包。我希望我的程序的用户能够运行该程序,该程序检查这些软件包是否已经安装。如果没有安装所需的软件包,我希望能够在机器(Linux)上安装这些程序。我的程序的其余部分将使用这些包来解决这个迷宫

一般情况

我如何创建一个程序,在执行时安装该程序所需的软件包以供以后使用?这可能吗?这叫什么(如果它存在的话),这样我就可以读到它了?最后,对于一年级的C++学生来说,这会是非常困难的吗?
感谢您的回复,我自己也尝试过寻找答案,但找不到。

在Linux上,这个问题通常由所谓的包管理器来解决

不同的发行版使用不同的包管理器。例如,基于Debian的发行版使用Debian包(
.deb
文件)。RedHat及其子项目Fedora利用RPM包(
.RPM
文件)。根据您的发行版,您将为您的项目创建适当的包,并在包的控制文件中列出它的依赖项

如果您使用的是基于Debian的发行版,我强烈推荐。它将允许您创建本地回购,镜像现有回购,并在Amazon的S3上托管您自己的回购

我也应该提到这一点。Docker也可以被认为是某种包管理器。它基本上允许您的应用程序携带其操作系统配置,这将允许您将应用程序部署到docker将运行的几乎任何地方。如果你使用相机硬件,可能会有一些限制,但这绝对值得考虑。此外,您还可以将其自由部署到所有同学/学生的计算机上


希望有帮助

你为什么要这么做?当然,列出您所需的需求就足够了-适用于诸如
yum install A B C D E F
?大多数基于Linux的发行版在其软件存储库中都有OpenCV,并且还具有完整的依赖项跟踪。因此,如果您安装了OpenCV开发包,那么所有需要的软件包都将自动安装。当然,如果您真的需要自动安装,请编写一些了解其发行版的内容,并运行相关的
yum/apt get/rpm install
您正在寻找的是所谓的配置管理(以及其他内容)。有很多工具可以实现这一点,因此不需要重新发明轮子。考虑在互联网上搜索安特尔、厨师、木偶和SaltStack。