我最近一直在阅读链接器,我无法理解这个编译代码。如果我要运行gcc -Wl,--hash-style=both example.c
,那么与仅仅运行gcc example.c
相比,它会有什么不同。而且,--hash-style
意味着什么
答案 0 :(得分:2)
--hash-style
的含义是什么
--hash-style
允许您更改用于运行时符号解析的哈希表的格式(有关详细信息,请参阅Drepper's article,部分" GNU样式的哈希表")。据说GNU哈希表格式稍快一些。
如果我要跑
相比,它会有什么不同gcc -Wl,--hash-style=both example.c
, 与仅仅运行gcc example.c
这取决于您的发行版GCC的配置方式。 AFAIK默认使用both
或gnu
样式。 Both
只是意味着链接文件将包括gnu
和sysv
哈希表。除非您尝试在具有不了解GNU哈希表的动态链接器的系统上运行程序,否则这不重要。在这种情况下,如果程序是使用-Wl,--hash-style=gnu
构建的,那么您在启动时会收到有关不支持的哈希表格式的错误。