共享库的创建gcc选项“-shared -fPIC -WI”

共享库的创建非常简单,最关键的是gcc的几个参数:

“-shared”:

表示输出结果是共享库类型。编译选项告诉编译器生成一个共享库(也称为动态链接库或 DLL)。共享库是一种包含可重用代码和数据的二进制文件,可以被多个程序共享,并在运行时动态加载到内存中。这意味着多个程序可以在运行时共享相同的库,减少了代码的冗余性,并提高了系统资源的利用率。

“-fPIC”:

(Position Independent Code)告诉编译器生成位置无关代码。位置无关代码是一种可以在内存中的任何位置加载和执行的代码,不依赖于特定的内存地址。这对于共享库特别重要,因为共享库可以加载到内存的任何位置,并且多个程序可以共享同一个共享库的单个实例。使用 -fPIC 生成的代码可以在不同的内存地址上运行,而不会产生冲突或错误。

“-WI”:

编译选项 -Wl,–out-implib 是用于告诉链接器生成一个导入库(Import Library)的选项。

导入库通常用于在链接时提供符号(symbols),以便其他程序可以在链接时引用它们。在Windows平台上,导入库的文件扩展名通常是 .lib。当你链接一个共享库(DLL)时,导入库中包含了导出函数的符号列表,使得链接器能够在编译时解析这些符号。这样,其他程序在链接时就可以使用这些符号了。

–out-implib 选项告诉链接器在生成可执行文件的同时,生成一个导入库文件。这对于开发 DLL 库并希望其他程序能够链接到它的应用程序是非常有用的。

相关推荐

  1. 共享创建gcc选项“-shared -fPIC -WI

    2024-03-16 22:56:03       22 阅读
  2. C++共享指针shared_ptr理解分享

    2024-03-16 22:56:03       9 阅读
  3. 查看编译使用gcc版本

    2024-03-16 22:56:03       12 阅读
  4. GCC -Wl参数详解

    2024-03-16 22:56:03       19 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-16 22:56:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-16 22:56:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-16 22:56:03       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-16 22:56:03       20 阅读

热门阅读

  1. perl 用 XML::Parser 解析 XML文件,访问哈希

    2024-03-16 22:56:03       22 阅读
  2. redis的过期策略以及内存淘汰机制

    2024-03-16 22:56:03       23 阅读
  3. 【Android】TextView前增加红色必填项星号*

    2024-03-16 22:56:03       21 阅读
  4. Vue3.0+vite vite.config.ts配置与env

    2024-03-16 22:56:03       18 阅读
  5. 【嵌入式——QT】线程同步

    2024-03-16 22:56:03       20 阅读
  6. Qt是什么?

    2024-03-16 22:56:03       19 阅读
  7. 第1章第2节:SAS语言基础

    2024-03-16 22:56:03       23 阅读
  8. 3月16日ACwing每日一题

    2024-03-16 22:56:03       19 阅读
  9. View UI清除表单

    2024-03-16 22:56:03       21 阅读
  10. 构建专业聊天软件:C#编程深度解析

    2024-03-16 22:56:03       22 阅读
  11. 树莓派开机自动播放U盘里的照片和视频

    2024-03-16 22:56:03       26 阅读