ld中-Bstatic标志的各种表示

时间:2015-07-10 12:36:24

标签: linker binutils

ld(来自binutils)的联系人页面中,有关于-Bstatic标志的变体的此部分:

  

-Bstatic
  -dn
  -non_shared
  -static
  不要链接共享库。这仅对支持共享库的平台有意义。 此选项的不同变体是为了与各种系统兼容。您可以在命令行上多次使用此选项:它会影响库搜索后面跟随它的-l选项。此选项还隐含--unresolved-symbols=report-all。此选项可与-shared一起使用。这样做意味着正在创建共享库,但必须通过从静态库中提取条目来解析所有库的外部引用。

我的问题是粗体句:这些变体试图兼容哪些系统?我在各种项目中都看到了-Bstatic-static,但到目前为止还没有人看到过剩下的两个变种。为了获得最大的兼容性(就跨平台而言),最好使用哪种?

1 个答案:

答案 0 :(得分:8)

目前使用的是-Bstatic-static选项,且相同:

  • -static表示:执行完全静态的链接(没有共享库使用)。
  • -Bstatic表示:对于关注的任何-lfoo,请仅使用该库的存档版本。

其他选项:-dn(1993年添加)和-non_shared(1994年添加)是为了与长期过时的操作系统兼容。