gpt4 book ai didi

c - 将可执行文件链接到可加载模块的可移植性如何?

转载 作者:太空狗 更新时间:2023-10-29 15:07:36 25 4
gpt4 key购买 nike

我手头有一个项目,其中包含一些编译为可加载模块的库,即与 libtool 的 -module 标志链接。这些库应该在它们自身或其依赖项中包含所有必要的函数,也就是说,当它们与一个简单的 main() 函数链接时,它们应该产生一个完整的程序,该函数只调用模块接口(interface)的所有函数对于我的程序。

由于我之前遇到过不完整且因此无法使用的模块的问题,所以我有一些简单的检查程序,它们只包含一个 main() 并链接到模块。当缺少一个函数时,链接器会发出适当的警告,所以一切都很好。然而,libtool 给了我一个警告:

*** Warning: Linking the executable checkplugin_locprec against the loadable module
*** liblocprec.so is not portable!

我了解此警告的目的和意图(不要将程序链接到使用 -module 构建的库),但不了解其严重性,这就是我的问题:

这个警告有多严重?幸运的是这适用于我正在编译的平台(i386/x86_64 Linux 和 MinGW),还是这个警告只与我可以安全忽略的一些晦涩的落后平台相关?

最佳答案

这不起作用的主要平台是 Mac OS X。在其他平台上,它通常应该可以工作,但可能会失败,具体取决于您使用的其他构建选项。如果您使用了 libtool,那么您在其他平台上可能是安全的。

关于c - 将可执行文件链接到可加载模块的可移植性如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7619607/

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