g++ 命令中".map"文件有什么用?

What is the use of ".map" file in the g++ command?

本文关键字:什么 map 命令 g++ 文件      更新时间:2023-10-16

我正在构建一个RPM,在构建时,我发现以下命令用于构建RPM的一个共享对象。

g++ /*some compiler options*/ -O1 -Wl,--version-script abc.map -L<some paths> and the remaining command.

我不明白命令中"--version script"选项和"abc.map"文件的用途。它做什么?以下是"abc.map"文件的内容。

URE_1{
global:
_ZTI*; _ZTS*; # weak RTTI symbols for C++ exceptions
/*some method names explicitly*/
local:
*;
}

我认为这与"共享对象"文件中符号的可用性有关,但我不确定。

我认为这与"共享对象"文件中符号的可用性有关,但我不确定。

你说得对。

参见3.9版本命令:

使用ELF时,链接器支持符号版本。符号版本只有在使用共享库时才有用。当动态链接器运行可能已链接到共享库的早期版本的程序时,它可以使用符号版本来选择函数的特定版本。