无法理解 gcc 链接器选项

wee*_*ing 5 linker gcc

我最近一直在阅读链接器,但在理解此编译代码时遇到了麻烦。如果我要跑步gcc -Wl,--hash-style=both example.c,这与我简单地跑步有什么不同gcc example.c。还有,是什么--hash-style意思

yug*_*ugr 5

是什么--hash-style意思

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

如果我要跑步gcc -Wl,--hash-style=both example.c,这与我只是跑步有什么不同?gcc example.c

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