首页 > 其他分享 >-Wl

-Wl

时间:2023-07-26 09:49:09浏览次数:37  
标签:可执行文件 -- Wl needed Bdynamic 链接

1、介绍
-Wl后面的东西是作为参数传递给链接器ld的。比如:

gcc -Wl,aaa,bbb,ccc

最后会被解释为:

ld aaa bbb ccc

2、-Wl,-Map=xxx.txt 生成map文件
如下会生成map文件mymap.txt。

gcc -Wl,-Map=mymap.txt -g main.c -o main

3、 -Wl,-Bstatic 和 -Wl,-Bdynamic 指定链接动态库或者静态库
-Wl,-Bstatic -laaa -lbbb -lccc -Wl,-Bdynamic -lddd -l ccc

-Wl,-Bstatic 后面的库是静态链接的;

-Wl,-Bdynamic 后面的都是动态链接的。

4、 -Wl,--as-needed和 -Wl,--no-as-needed
在生成可执行文件的时候,通过 -lxxx 选项指定需要链接的库文件,连接器会在可执行文件的文件头中会记录下该库的信息。
在可执行文件运行的时候,动态加载器会读取文件头信息,并加载所有的链接库。

在这个过程中,如果用户指定链接了一个毫不相关的库,则这个库在最终的可执行程序运行时也会被加载,如果类似这样的不相关库很多,会明显拖慢程序启动过程。

通过指定 -Wl,--as-needed 选项,链接过程中,链接器会检查所有的依赖库,没有实际被引用的库,不再写入可执行文件头。最终生成的可执行文件头中包含的都是必要的链接库信息。
-Wl,--no-as-needed 选项不会做这样的检查,会把用户指定的链接库完全写入可执行文件中。

标签:可执行文件,--,Wl,needed,Bdynamic,链接
From: https://www.cnblogs.com/xpylovely/p/17581618.html

相关文章

  • Interleaving Retrieval with Chain-of-Thought Reasoning for Knowledge-Intensive M
    目录概IRCoT代码TrivediH.,BalasubramanianN.,KhotT.,SabharwalA.Interleavingretrievalwithchain-of-thoughtreasoningforknowledge-intensivemulti-stepquestions.ACL,2023.概CoT(ChainofThought)+检索.IRCoT对于如上的问题,"Inwhatcountry......
  • (GCC) gcc编译选项 -Wl, -start-group,whole-archive,-Wl, Bstatic
    1.start-group编译选项假设程序x依赖三个静态库:libX1.a、libX2.a和libX3.a,而libX2.a又依赖libX1.a,libX3.a依赖libX2.a和libX1.a,正常情况下的CMakeLists.txt格式如下target_link_libraries(xlibX1.alibX2.alibX3.a)但也可以偷懒,不关心静态库的顺序问题,ld......
  • Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks
    目录概符号说明RAGRetriever:DPRGenerator:BARTLewisP.andPerezE.,etal.Retrieval-augmentedgenerationforknowledge-intensivenlptasks.NIPS,2020.概RAG:赋予模型检索的能力.符号说明\(\bm{x}\),输入序列;\(\bm{y}\),输出序列,长度为\(N\);RAG......
  • Query2box Reasoning over Knowledge Graphs in Vector Space using Box Embeddings
    目录概符号说明Query2Box代码RenH.,HuW.andLeskovecJ.Query2box:Reasoningoverknowledgegraphsinvectorspaceusingboxembeddings.ICLR,2020.概Boxembedding用于查询判断,和我想的那个有很大差别啊.我对这方面不是很了解,只能记录个大概.符号说明......
  • WLS2安装及挂载linux硬盘
    WSL2安装管理员权限运行powershell/cmdwsl--install#安装默认版本ubuntu拉取的时候建议挂个科技不然会失败wsl--list--online#以查看可用发行版列表wsl--install-d<DistroName>#以安装发行版WSL2卸载发行版wsl--unregister<DistributionName>WSL挂载linu......
  • 【雕爷学编程】Arduino动手做(159)---RCWL-0515微波检测模块
    37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手尝试系列实验,不管成功(程序走通)与否,都会记录下来—小小的进步或是搞......
  • ICT应用解决方案12-WLAN工作原理
    ICT应用解决方案12-WLAN工作原理1WLAN工作流程1.1AP上线AP获取IP地址并发现AC,与AC建立连接,为确保AP能够上线,AC需预先配置如下内容:配置网络互通:配置DHCP服务器,为AP和STA分配IP地址,也可将AC设备配置为DHCP服务器配置AP到DHCP服务器间的网络互通;配置AP到AC之间的网络......
  • ICT应用解决方案实验04-WLAN专题项目
    ICT应用解决方案实验04-WLAN专题项目1项目介绍1.1项目拓扑1.2无线项目需求根据拓扑图,完善YX-CK和YX-Access的配置,其中,转发模式为隧道转发模式。现在为某车间进行无线网络规划,要求使用的业务VLAN为VLAN101,使用的管理VLAN为VLAN100。同时,AC充当DHCPServer,分别为这俩个VL......
  • 配置小型网络WLAN基本业务
    配置小型网络WLAN基本业务组网图形组网需求(适宜群体)某企业分支机构规模较小,为了保证工作人员可以随时随地的访问公司网络,通过部署小型WLAN网络实现移动办公。如图所示,AC通过PoE交换机与AP连接,PoE交换机为AP供电。通过在AC上配置WLAN业务的相关内容,下发给AP生成WLAN网络供用户......
  • Scrapy 中 CrawlSpider 使用(二)
     LinkExtractor提取链接创建爬虫scrapygenspider爬虫名域名-tcrawlspiderfromscrapy.linkextractorsimportLinkExtractorfromscrapy.spidersimportCrawlSpider,RuleclassXsSpider(CrawlSpider):name="爬虫名"allowed_domains=["域名"]......