Mac OS X 上的“-noall_load”标志替换是什么?

Lio*_*ion 5 macos ld

我在项目中使用了“all_load”和“noall_load”ld 标志,但编译器/ld 报告 noall_load 被忽略。它的替代品是什么?

$ cc ... -Wl,-all_load lib1 -Wl,-noall_load lib2 lib3 ...
...
ld: warning: option -noall_load is obsolete and being ignored
...
$ ld -v
@(#)PROGRAM:ld  PROJECT:ld64-253.3
configured to support archs: armv6 armv7 armv7s arm64 i386 x86_64 x86_64h armv6m armv7k armv7m armv7em
LTO support using: Apple LLVM 7.0.0 (clang-700.0.72)
Run Code Online (Sandbox Code Playgroud)

Sim*_*ane 6

根据man ld:

     -noall_load
             This is the default.  This option is obsolete.
Run Code Online (Sandbox Code Playgroud)

换句话说,-noall_load是没用的,因为它禁止加载静态归档库的所有成员,但默认情况下无论如何都是禁用的。链接器警告只是让您知道您正在向链接器传递一个无用的选项。虽然无用的选项不会对您的构建造成任何损害,但无用的选项有可能使人们感到困惑和分散注意力,并且如果在未来的版本中完全删除该选项,则可能会导致构建失败并出现错误。

更新:根据您的评论,您正在尝试-all_load对某些档案进行操作,但不对其他档案进行操作。您不能通过在同一个链接器调用中组合-all_load和 来做到这一点,但您可以使用 来做到这一点。-noall_load-force_load