当前位置: 首页 > news >正文

国泰君安建设工程官方网站一达通外贸综合服务平台

国泰君安建设工程官方网站,一达通外贸综合服务平台,在线搭建网站,wordpress段间距背景 在支持插件/扩展的C/C系统中#xff0c;通常会支持在程序运行时加载动态链接库。这时二进制程序会提供一些函数/接口让动态链接库调用#xff0c;但是这些函数在二进制程序中又不会使用#xff0c;导致在编译时编译器直接把这些符号删除了#xff0c;加载链接库就会由…背景 在支持插件/扩展的C/C系统中通常会支持在程序运行时加载动态链接库。这时二进制程序会提供一些函数/接口让动态链接库调用但是这些函数在二进制程序中又不会使用导致在编译时编译器直接把这些符号删除了加载链接库就会由于找不到符号而失败。 本文将描述一种将仅在动态链接库中使用的符号如何暴露出来的方法。 方法描述 目标将要导出的符号放到 .dynsym 区。 dlopen的动态链接库会去解析 .dynysm 区中的符号。 保留所有要导出的符号以防被inline 或者被链接器删除掉将符号都导出到 .dynsym 区 -rdynamic 编译选项也能解决这个问题但是会导出一些不相关的符号也会影响程序的优化。 假设需要保留的符号放在某一个静态链接库中在编译二进制文件时使用 -Wl,--whole-archive 可以将符号都保留下来再使用 -Wl,--export-dynamic-symbol 命令导出相关符号比如 target_link_libraries(observerPUBLIClibalibb-Wl,--whole-archivelibkeep_symbols-Wl,--no-whole-archive-Wl,--export-dynamic-symbolexport_*)链接器将会保留 -Wl,--whole-archive 和 -Wl,--no-whole-archive 之间所有链接库的所有符号注意要导出的符号不要让它inline 掉使用 -Wl,--export-dynamic-symbolexport_* 命令导出所有 export_ 开头的符号你可以编写其它的正则表达式。 参考资料 将符号放到.dynsym区中保留未使用的符号WASM中关于符号导出的讨论可执行符号导出的问题讨论lld 手册cmake的enable_exportslld 增加 --export-dynamic-symbol-listLinux kernel export_symbol 解析 一些其它参考信息 Postgres中的做法 链接postgres的命令 gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werrorvla -Wendif-labels -Wmissing-format-attribute -Wimplicit-fallthrough3 -Wcast-function-type -Wshadowcompatible-local -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precisionstandard -Wno-format-truncation -Wno-stringop-truncation -g -O0 access/brin/brin.o access/brin/brin_bloom.o access/brin/brin_inclusion.o ....... ../../src/timezone/strftime.o jit/jit.o ../../src/common/libpgcommon_srv.a ../../src/port/libpgport_srv.a -L../../src/port -L../../src/common -Wl,--as-needed -Wl,-rpath,/root/github/postgres/debug/lib, --enable-new-dtags -Wl,--export-dynamic -lm -o postgresPostgreSQL使用 -Wl,--export-dynamic 解决了将符号放到 .dynsym 的问题也可以参考 -rdynamic 编译选项。但是这种方法会把所有相关的符号都放过去因为PG是一个大部分模块都支持扩展的应用符号都导出去没啥问题。 将符号保留在 .symtab 区 尝试过其它方法比如将符号保留在 .symtab 区中符号保留成功但是动态库引用不到。 当前的符号在.symtab区中 使用 version-script 指定过符号是global但是dlopen依然由于找不到符号而打开失败 这时obp_charset_ctype 符号已经在.symtab区域中 写脚本的方法是在编译 observer的时候增加选项-Wl,--version-script/data/project/src/observer/plugin_export.lds ld链接器的一些参数 ld 有一些参数可能会用 --dynamic-list-data Add data symbols to dynamic list --dynamic-list-cpp-new Use C operator new/delete dynamic list --dynamic-list-cpp-typeinfo Use C typeinfo dynamic list --dynamic-list FILE Read dynamic listld.lld 参数会有一些区别 (ld.lld 是LLVM针对gnu ld的替代品速度更快 链接选项增加-Wl,--export-dynamic-symbolobp_* 这时候这些符号都去了dynamic区了
http://www.hkea.cn/news/14296332/

相关文章:

  • 有源码手机怎么搭建网站做一个网站的流程是什么
  • 无锡网站推广优化费用wordpress账号权限
  • 做网站的公司图wordpress 打赏实现
  • 搜狐视频网站联盟怎么做综合网站建设课程设计
  • 上海网站建设报沈阳城市建设学院信息与控制工程系
  • 国内常见的博客网站wordpress积分商城插件
  • 微信平台app网站建设台州网站制作报价
  • 商务网站建设管理思路南昌易动力网站建设公司
  • 自贡订房中心网站建设nas做视频网站
  • 网络推广网站推广方法网站做301将重定向到新域名
  • 青海省建设厅网站首页阿里云建网站步骤
  • 企联网站建设成都网站建制作
  • 提供邢台网站优化网站里怎样做点击量查询
  • 网站搭建 成都暴雪娱乐
  • 什么是网站建设需求分析网站制作div区域是哪儿
  • 网站开发上传视频教程2345网址导航怎么删除干净?
  • 安徽建设银行网站中国建设银行个人网站银行
  • 做论文常用网站社区类网站建设的例子
  • 中国建设银行官网站哈南分理处做预算的网站
  • 免费做微信链接的网站吗登记注册身份验证app下载
  • 做免费互动小游戏的网站音乐网站开发需求文档模板
  • 网站的建设步骤包括什么网站建设属于那个科目
  • 郑州公司网站制作如何申请商业服务器
  • wordpress网站密码服务号 订阅号
  • 建设银行 u盾不弹出网站厦门市做网站优化
  • html5 网站开发 适配互联网服务平台投诉中心
  • 内蒙古地区做推广网站提升网站长尾关键词排
  • 如何给网站弄ftp网站开发 报价
  • 知乎网站怎么做推广免费完整版的网站模板
  • 网站上传大马后怎么做网站开发从哪开始学