首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >部署一个非常简单的应用程序

部署一个非常简单的应用程序
EN

Software Engineering用户
提问于 2012-09-04 22:10:47
回答 2查看 393关注 0票数 0

我有一个非常简单的用C++编写的工作控制台应用程序,它与一个轻量级的静态库链接在一起。这只是为了测试的目的。现在编码部分已经完成,我想知道实际部署程序的过程。我编写了一个非常基本的CMakeLists.txt,它创建makefile或VS项目来构建源代码。我也有一个程序,调用静态库,以进行一些谷歌测试。

对我来说,这个应用程序的部署如下所示:

  • 对于开发人员:带有CMakeLists.txt文件(多平台发行版)的src目录具有一个README.txt和一个INSTALL.txt。
  • 发送给用户:可执行文件和README.txt
  • gtest :上面提到的所有内容,加上用于测试的源和gtest外部库

答:考虑到我的应用程序的复杂性,我做得对吗?

有什么参考可以使这个部署过程正规化,这样我才能做得更好,更进一步吗?假设我想添加可以更新的动态库,外部库(如boost ):我应该如何将它打包以专业的方式进行部署?

EN

回答 2

Software Engineering用户

发布于 2012-09-04 23:31:01

听起来问题不在于分配。发行版是关于如何将应用程序提供给其他人,并包括您在哪些站点上托管应用程序,以及如何下载应用程序并获取更新。有关详细信息,请参阅如何销售/分发我的软件?。同样,如果你想推销你的应用程序(让人们知道),看看https://softwareengineering.stackexchange.com/questions/27078/what-is-the-best-way-to-introduce-software-created-by-you的一些起点。这听起来像是在询问更多关于应用程序在提供给客户和其他开发人员时应该采取的表单。

从客户开始,需要考虑的内容包括客户的技术水平以及他们运行的操作系统。如果客户是运行在*nix上的技术人员,那么自述文件和可执行文件可能就足够了。如果您正在编写iPhone应用程序,显然不是。这个问题可以推断你的目标是*nix或Windows环境,所以我至少会考虑安装程序。

至于将部分分离成动态库,如果您想要引用现有的库、按不同的计划发布库或在其他应用程序中重用它,这会有所帮助。它对于自动单元测试也很有用。不幸的是,除了Windows上称为"DLL地狱“的潜在版本冲突之外,客户实际上并不关心这些问题。

对于开发人员,遵循我们的目标操作系统和语言的约定。如果你的目标是*nix,一个makefile是很好的。如果以Windows为目标,Visual项目是有用的。如果您正在进行跨平台开发,最低公共分母方法可能是最可维护的。

然而,你能做的最大的一件事就是记录你的代码。大多数开发人员甚至可以通过复杂的构建过程完成他们的工作,只要他们知道如何。自述或类似的内容必须包含详细的构建说明、已知问题和您的联系方式(如电子邮件地址或网站)。

至于是否将代码拆分到外部库,开发人员也不太关心,只要库工作正常,并且没有违反任何许可协议。开发人员节省的时间和精力是值得的。

票数 2
EN

Software Engineering用户

发布于 2012-09-05 13:00:30

你的应用程序的复杂性不是主要因素--你的受众才是影响你的因素。所以这不是一个真正的技术问题,更多的是一个组织问题。如果您构建一个应用程序

  • 只是为了你自己,你显然没有任何努力去部署
  • 对于想要使用它的同事来说,在你隔壁工作:你可以帮他安装一次。
  • 对于公司中的其他人:您可以编写安装文档,或者编写一些安装脚本。
  • 对于您公司的其他开发人员:只需将其放入您常用的源代码回购程序中,他们就可以从那里自行检查源代码(确保他们可以轻松地重新构建程序)。
  • 对于公司以外的其他开发人员:您可能需要使程序跨平台。
  • 对于世界各地的其他用户:您可以为每个目标系统提供一个完整的安装程序。

此外,如何处理“动态库”的问题只能根据观众的情况来回答。您的应用程序的用户通常对您使用的库不感兴趣,他们只希望您的应用程序“工作”,因此确保您在开发时使用的库版本将随您的应用程序一起提供(或者至少可以轻松安装)。相反,其他开发人员很可能想知道安装/使用哪个库版本来编译应用程序。

如果你想读什么东西,谷歌的“软件部署书”,你会发现大量的文献,主要是系统依赖。

票数 2
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/163709

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档