gpt4 book ai didi

c++ - 允许共享库中 undefined reference 的 g++ 标志是什么?

转载 作者:行者123 更新时间:2023-11-30 01:13:45 25 4
gpt4 key购买 nike

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

我正在编写一个共享库,我希望我的库允许 undefined reference 。这样,无论谁使用我的库,都必须链接到它链接到它的依赖项。 g++ 上的什么标志允许这样做?或者它可能是一个链接器标志?

最佳答案

这只能是一个链接器标志...然后,它取决于您使用的链接器。
在 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.

关于c++ - 允许共享库中 undefined reference 的 g++ 标志是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31371867/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com