c++ - Linux:C/C++ 标准库静态与动态链接

标签 c++ c linux shared-libraries static-libraries

<分区>

可能在任何操作系统上都可以静态或动态编译 C++/C 标准库。在 Windows 上,我总是更喜欢静态构建,因为它有助于避免在特定 Windows 版本、版本和服务包等上安装或未安装不同版本库的“dll hell”问题。静态链接使软件更便携,更少依赖于什么最终用户使用他的操作系统(我什至看到最终用户可以对 system32 中的某些 DLL 进行 SHIFT+DEL 的示例,他无法解释原因,或者当用户声称我的应用程序包含病毒,因为它试图从 Microsoft 官方网站下载动态链接的先决条件...)因此,根据我的经验,在 Windows 上静态链接通常比动态链接更好。 但是,我是Linux的新手,所以谁能分享他的经验?我的问题是:如果我们忽略动态链接可以节省内存和硬盘空间这一事实,并且如果我们计划使用自动安装程序分发软件,那么在 Linux 上首选哪种链接(动态或静态)(硬盘空间和内存现在已经足够便宜,因此没有理由牺牲创建真正优秀且便携的安装程序所需的数小时工作时间来赢得几兆字节的 RAM 或硬盘空间)。动态/静态链接是否存在任何特定于 Linux 的问题?

最佳答案

在 Linux 上,您通常有一个包管理器来确保您只安装一个版本的库。所以通常没有 dll hell ,动态链接也没有问题。动态链接是 Linux 上的标准方式。

关于c++ - Linux:C/C++ 标准库静态与动态链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21876174/

相关文章:

c++ - 使用指向非静态成员函数的指针实现回调

c++ - 将文字作为 const ref 参数传递

linux - 由于 "missing separator"无法运行 make 文件

c++ - 在 Linux 上锁定单个进程内数据访问的最快方法

c++ - snprintf : why not report error when second argument over destination memory

c++ - 如何使用opencv在ios中写一个简单的图片加载函数

c++ - 使用另一个字符串从字符串中删除空格

c++ - 动态内存分配和内存块元数据

c - 从文件中读取 7 个变量(每个变量 1 行)并分配给结构变量

c套接字发送和接收int而不是char缓冲区