【发布时间】:2011-10-29 16:01:28
【问题描述】:
unix 的哲学之一是编写小型软件组件,然后将它们连接在一起,例如 uzbl 或 git,但我问您如何将它们组合在一起以构成一个大型应用程序?如果我有兴趣将 C 程序粘合在一起,我是否编写另一个程序来调用它们,通过 system() 调用来执行系统以提供所需的行为?有哪些好的做法?我在哪里可以找到该领域更深入的细节。
例如,我正在尝试开发自己的程序,并希望将程序的不同组件划分在一起。以网络浏览器 Uzbl 或版本控制软件 git 为例,它们如何将不同的二进制文件绑定在一起以生成一个?
【问题讨论】:
-
您实际上是在尝试将程序粘合在一起,还是将多个功能粘合在一起?通常,C 程序是通过将多个函数链接在一起来构建一个程序来构建的。有一个程序,通常称为 LINKER,它获取所有函数并将它们链接在一起。
-
我想我可能正在尝试将程序粘合在一起,但不一定要使用 shell 脚本来做到这一点。或者这就是 git 或 uzbl 之类的程序的作用?
-
unix 的理念是避免大型应用程序。
-
是的,我明白了,但在某些时候,仍然需要将一些组件粘合在一起以构成一个系统!它是第 22 条,但在某些情况下你不能没有,仍然对将软件组件粘合在一起的最佳方式感兴趣。