静态/动态库与 .so 库?

Kai*_*aan 3 c dll gcc visual-studio

我来自带有 Visual Studio 背景的 Windows 进行本机开发,现在我要编译本机代码以在 Android 上使用。

我不确定类 UNIX 库 (.so?) 是如何工作的。它们是静态的(如 Windows 上的 .lib)还是动态加载的(如 DLL)?例如,在Visual Studio中,我将.lib文件添加到我的项目中进行编译,然后在运行时加载.dll。比如说使用 GCC,unix-stuff 中的等价物是什么?

谢谢!

Did*_*set 5

在 Linux 上,.so 文件与 Windows 上的 .dll 文件等效 (*),因为它们在执行时动态加载到可执行文件中。但请注意,链接应用程序时不需要 .lib 文件。链接器将直接在.so 文件中查找信息。

*:有差异。