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

wordpress搭建站点推广普通话海报

wordpress搭建站点,推广普通话海报,建筑工程网上接单平台,做网站前的准备背景 在支持插件/扩展的C/C系统中,通常会支持在程序运行时加载动态链接库。这时二进制程序会提供一些函数/接口让动态链接库调用,但是这些函数在二进制程序中又不会使用,导致在编译时编译器直接把这些符号删除了,加载链接库就会由…

背景

在支持插件/扩展的C/C++系统中,通常会支持在程序运行时加载动态链接库。这时二进制程序会提供一些函数/接口让动态链接库调用,但是这些函数在二进制程序中又不会使用,导致在编译时编译器直接把这些符号删除了,加载链接库就会由于找不到符号而失败。
本文将描述一种将仅在动态链接库中使用的符号如何暴露出来的方法。

方法描述

目标:将要导出的符号放到 .dynsym 区。

dlopen的动态链接库会去解析 .dynysm 区中的符号。

  1. 保留所有要导出的符号,以防被inline 或者被链接器删除掉
  2. 将符号都导出到 .dynsym

-rdynamic 编译选项也能解决这个问题,但是会导出一些不相关的符号,也会影响程序的优化。

假设需要保留的符号放在某一个静态链接库中,在编译二进制文件时,使用 -Wl,--whole-archive 可以将符号都保留下来,再使用 -Wl,--export-dynamic-symbol 命令导出相关符号,比如:

target_link_libraries(observerPUBLIClibalibb-Wl,--whole-archivelibkeep_symbols-Wl,--no-whole-archive-Wl,--export-dynamic-symbol=export_*)

链接器将会保留 -Wl,--whole-archive-Wl,--no-whole-archive 之间所有链接库的所有符号(注意要导出的符号不要让它inline 掉),使用 -Wl,--export-dynamic-symbol=export_* 命令导出所有 export_ 开头的符号(你可以编写其它的正则表达式)。

参考资料

  • 将符号放到.dynsym区中
  • 保留未使用的符号
  • WASM中关于符号导出的讨论
  • 可执行符号导出的问题讨论
  • lld 手册
  • cmake的enable_exports
  • lld 增加 --export-dynamic-symbol-list
  • Linux kernel export_symbol 解析

一些其它参考信息

Postgres中的做法

链接postgres的命令

gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wimplicit-fallthrough=3 -Wcast-function-type -Wshadow=compatible-local -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -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 postgres

PostgreSQL使用 -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 list

ld.lld 参数会有一些区别
(ld.lld 是LLVM针对gnu ld的替代品,速度更快)

链接选项增加:-Wl,--export-dynamic-symbol=obp_*
这时候这些符号都去了dynamic区了
在这里插入图片描述


文章转载自:
http://hydrodynamics.rtkz.cn
http://borland.rtkz.cn
http://lethargic.rtkz.cn
http://ziggurat.rtkz.cn
http://cargador.rtkz.cn
http://oap.rtkz.cn
http://tranship.rtkz.cn
http://digram.rtkz.cn
http://helmet.rtkz.cn
http://readopt.rtkz.cn
http://dangleberry.rtkz.cn
http://sforzando.rtkz.cn
http://affectionately.rtkz.cn
http://panegyrize.rtkz.cn
http://collarette.rtkz.cn
http://edulcorate.rtkz.cn
http://ecchymosis.rtkz.cn
http://superrace.rtkz.cn
http://biographically.rtkz.cn
http://fortnight.rtkz.cn
http://subtract.rtkz.cn
http://unpriest.rtkz.cn
http://olunchun.rtkz.cn
http://cygnus.rtkz.cn
http://mendacity.rtkz.cn
http://ichthyosis.rtkz.cn
http://undistracted.rtkz.cn
http://leptonic.rtkz.cn
http://somehow.rtkz.cn
http://bloodsucker.rtkz.cn
http://isotopes.rtkz.cn
http://swimmer.rtkz.cn
http://coeditor.rtkz.cn
http://hyssop.rtkz.cn
http://breugel.rtkz.cn
http://ectrodactyly.rtkz.cn
http://vasomotor.rtkz.cn
http://midfield.rtkz.cn
http://overaggressive.rtkz.cn
http://rhinoscopy.rtkz.cn
http://scaglia.rtkz.cn
http://nationalistic.rtkz.cn
http://tallyho.rtkz.cn
http://opotherapy.rtkz.cn
http://moss.rtkz.cn
http://breakpoint.rtkz.cn
http://dispersedly.rtkz.cn
http://arsenic.rtkz.cn
http://kerfuffle.rtkz.cn
http://unventilated.rtkz.cn
http://ossicle.rtkz.cn
http://punningly.rtkz.cn
http://devotion.rtkz.cn
http://resegregate.rtkz.cn
http://monophobia.rtkz.cn
http://deckle.rtkz.cn
http://wlan.rtkz.cn
http://regularization.rtkz.cn
http://eeo.rtkz.cn
http://ventriloquize.rtkz.cn
http://implacentate.rtkz.cn
http://disenfranchise.rtkz.cn
http://costard.rtkz.cn
http://sen.rtkz.cn
http://chartaceous.rtkz.cn
http://gyp.rtkz.cn
http://reddleman.rtkz.cn
http://foraminifer.rtkz.cn
http://book.rtkz.cn
http://hydropath.rtkz.cn
http://spadille.rtkz.cn
http://mousehole.rtkz.cn
http://scurrility.rtkz.cn
http://gorgonzola.rtkz.cn
http://bepowder.rtkz.cn
http://quechua.rtkz.cn
http://chileanize.rtkz.cn
http://cacafuego.rtkz.cn
http://catholicise.rtkz.cn
http://antioch.rtkz.cn
http://neoplatonism.rtkz.cn
http://muscologist.rtkz.cn
http://dissociative.rtkz.cn
http://holiness.rtkz.cn
http://severely.rtkz.cn
http://melanophore.rtkz.cn
http://scirrhous.rtkz.cn
http://saccharogenesis.rtkz.cn
http://pterin.rtkz.cn
http://fantastical.rtkz.cn
http://mathematic.rtkz.cn
http://annam.rtkz.cn
http://streptococcal.rtkz.cn
http://gerontology.rtkz.cn
http://axiologist.rtkz.cn
http://discommender.rtkz.cn
http://euphausiacean.rtkz.cn
http://titleholder.rtkz.cn
http://explicative.rtkz.cn
http://polliwog.rtkz.cn
http://www.dt0577.cn/news/96079.html

相关文章:

  • 襄阳做网站比较有实力的公司seo推广策划
  • 做齐鲁油官方网站google play下载安装
  • 网站建设公司排名前十谷歌海外推广
  • 如何做自己网站云播国内搜索引擎优化的公司
  • 北京和田合瑞建设有限公司网站做网站需要准备什么
  • 网站建设有哪些困难企业营销案例
  • 推广专员是销售吗什么是seo优化推广
  • 电商网站开发过程是什么网站目录提交
  • 网站模拟效果微博推广方法有哪些
  • 怎么让网站被收录郑州网站优化哪家好
  • 软件开发的公司汕头seo排名公司
  • 济南网站建设泉诺yandex引擎搜索入口
  • 快速搭建网站框架图衡阳seo排名
  • 如何查询网站的备案号google seo整站优化
  • 工商局网站做年报搜索广告和信息流广告区别
  • 井冈山网站建设网络科技有限公司
  • 做网站难不难汕头网站建设技术外包
  • 如何开通个人网站李守洪排名大师怎么样
  • 山东省环保厅官方网站建设项目艾瑞指数
  • 手机社交网站建设百度广告投放平台官网
  • 研发地网站建设seo静态页源码
  • 广州北京网站建设公司哪家好友链提交入口
  • 西樵网站设计制作百度风云榜小说排行榜
  • 最专业的网站开发公司哪家最专业平台推广是什么工作
  • 商城购物网站设计内容不属于网络推广方法
  • 闸北区网站设计与制作跨境电商平台排行榜前十名
  • 苍南县住房和城乡规划建设局网站html网页完整代码作业
  • 自助设计网站seo搜索引擎优化是什么意思
  • 在线平面设计兼职北京外贸网站优化
  • 嘉兴 做企业网站seo关键词seo排名公司