5

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

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

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

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

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

4

1 回答 1

2

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

于 2011-10-03T03:01:51.320 回答