【发布时间】:2022-01-22 03:24:46
【问题描述】:
POV:现在是 2022 年。您开发了一个名为“cowsay”的控制台应用程序,并在 Windows 10 机器上使用 clang++ 对其进行了编译。代码如下:
#include<iostream>
using std::cout;
using std::cerr;
using std::endl;
int main(int argv, char** argc)
{
if ( argv > 1) {
for (int i = 1; i < argv; ++i)
cout << "the cow said: " << argc[i] << endl;
} else {
cerr << "Usage: cowsay [word]" << endl;
}
return 0;
}
它在您的机器上完美运行,但现在您想将它分发给 Alice(使用最新的 MacOS)和 Bob(使用最新的 Ubuntu)。你是怎么做的?
您已经看到 conan(即 C/C++ 包管理器)的存在似乎允许轻松分发,但必须要求人们安装 conan 才能运行您的应用程序看起来很麻烦。有更好的解决方案吗?大多数人使用什么解决方案?是否可以让用户通过他们在这些系统中习惯使用的工具(例如,choco、brew、apt-get 等)安装您的应用程序?您能否让clang++ 从您的机器上针对 Alice 和 Bob 的机器,或者您是否需要在每次发布时都借用他们的 Ubuntu 和 MacOS 计算机?有没有什么好书可以解决开发中这个非常烦人的 (imo) 部分(例如,可能类似于 21st Century C 的前几章,涵盖了打包您的项目之类的内容)?
P.S.我在网站上发现了类似的问题,但没有一个真正解决 C++ 控制台应用程序的端到端分发策略,所以我决定问我的第一个 stackoverflow 问题而且,好吧,希望是最好的! ????
【问题讨论】:
-
哦,可爱的爱丽丝和鲍勃……这是密码学练习吗?
-
@TedLyngmo,不,这实际上是一个真正的问题。想试一试吗? ;D
-
抱歉,这个时候我的问题太多了,但是玩家 Alice 和 Bob 听起来很熟悉 :)
-
@DanChiarlone
clang++本身是如何最终在多个操作系统上可用的?那是如何分发/安装的等?具有讽刺意味的是,您正在使用的程序 (clang++) 也是一个控制台应用程序,可在多个操作系统上使用。 -
这是一个很好的问题~我只在 Windows 上运行 clang++,但是,当然,我知道它分布在任何地方。无论如何,我不熟悉他们如何设法跨多个目标进行分配。您是要尝试引导我找到解决方案吗?哈哈
标签: c++ operating-system console-application release clang++