允许共享库中未定义引用的 g++ 标志是什么?

What is the g++ flag that permits undefined references in shared libraries?

我记得我曾在互联网上的某个时候准确地读过这个标志是什么,但现在我忘记了。

我正在编写一个共享库,我希望我的库允许未定义的引用。这样,无论谁使用我的库,都必须 link 反对它 link 反对它的依赖关系。 g++ 上的什么标志允许这样做?或者它可能是 linker 标志?

只是不要 link 您的共享库及其依赖库,仅此而已。

默认情况下,当link访问共享库时,允许使用未定义的引用。现在,如果您显式 link 您的共享库及其依赖项,运行时加载程序将自动加载这些依赖项。如果您没有明确 link 您的共享库及其依赖项,link 使用您的共享库将需要 link 使用其依赖项,以便取消解析所有未定义的引用。

这只能是链接器标志...然后,它取决于您使用的链接器。
在 Linux 上(可能还有 BSD,至少在 FreeBSD 上)这应该是默认行为。不过 Mac 上没有。

来自GNU ld man page

--allow-shlib-undefined
--no-allow-shlib-undefined
          Allows or disallows undefined symbols in shared libraries.
          This switch is similar to --no-undefined except that it determines
          the behaviour when the undefined symbols are in a shared library rather
          than a regular object file. It does not affect how undefined symbols in
          regular object files are handled.

          The default behaviour is to report errors for any undefined symbols
          referenced in shared libraries if the linker is being used to create an
          executable, but to allow them if the linker is being used to create a
          shared library.

来自Apple ld man page

-undefined treatment  
         Specifies how undefined symbols are to be treated. Options
         are: error, warning, suppress, or dynamic_lookup.  The
         default is error.