锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

GCC详解-gcc之-Wl选项

时间:2023-05-30 03:07:00 wl系列传感器wlcal5

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 选项不会做这样的检查,会把用户指定的链接库完全写入可执行文件中。

锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章