无法理解gcc链接器选项

时间:2017-02-06 12:51:50

标签: gcc linker

我最近一直在阅读链接器,我无法理解这个编译代码。如果我要运行gcc -Wl,--hash-style=both example.c,那么与仅仅运行gcc example.c相比,它会有什么不同。而且,--hash-style意味着什么

1 个答案:

答案 0 :(得分:2)

  

--hash-style的含义是什么

--hash-style允许您更改用于运行时符号解析的哈希表的格式(有关详细信息,请参阅Drepper's article,部分" GNU样式的哈希表")。据说GNU哈希表格式稍快一些。

  

如果我要跑gcc -Wl,--hash-style=both example.c,   与仅仅运行gcc example.c

相比,它会有什么不同

这取决于您的发行版GCC的配置方式。 AFAIK默认使用bothgnu样式。 Both只是意味着链接文件将包括gnusysv哈希表。除非您尝试在具有不了解GNU哈希表的动态链接器的系统上运行程序,否则这不重要。在这种情况下,如果程序是使用-Wl,--hash-style=gnu构建的,那么您在启动时会收到有关不支持的哈希表格式的错误。