0

我需要构建一个在嵌入式供应商提供的 linux 版本上运行的应用程序。根据文档,它具有 libc 版本 2.8.90。我在桌面上用 C++ 构建了一个简单的应用程序,并将二进制文件连同它所链接的库的副本一起复制到硬件中。为了消除链接到不同版本库的任何潜在冲突,我考虑尝试静态链接到库。经过一番研究,我发现了以下问题和答案通读后给人的印象是静态链接不是一件好事。我在这里(或到目前为止其他任何地方)找不到的是一个简单的解释,解释了为什么这似乎不受欢迎。在我看来(几乎是 linux 的新手)是一种解决我将可执行文件捆绑为单个包并在我的硬件上运行它的问题的方法,但显然这似乎被认为是一个坏主意,但有人可以解释一下为什么??

显然我知道这会导致我的二进制文件膨胀,但我并不担心。此外,我知道许可问题,但我并不特别关心这方面的事情。这不是商业应用程序,所以我认为它不适用于我。

4

1 回答 1

4

正如您所期望的那样,其优点是无需安装其他依赖项即可工作的单个二进制文件,并且您可以轻松地四处移动。

缺点是如果链接库有更新(例如安全修复)以及许可问题(如您所述),则需要重新编译整个应用程序的大小和需要重新编译。

权衡取舍。如果它解决了你的问题,那就去吧。

于 2012-07-09T13:12:25.893 回答