我来自一个带有视觉工作室背景的Windows用于本机开发,我现在要编译用于android的本机代码。
我不确定类似unix的库(.so?)是如何工作的。它们是静态的(如Windows上的.lib)还是像DLL一样动态加载? 例如,在visual studio中,我将.lib文件添加到我的项目中进行编译,然后在运行时加载.dll。 unix-stuff中的等价物是什么,比如使用GCC?
谢谢!
答案 0 :(得分:3)
在Linux上,.so文件是Windows上.dll文件的等效文件(*),因为它们在执行时动态加载到可执行文件中。但请注意,链接应用程序时不需要.lib文件。链接器将直接在.so文件中找到信息。
*:存在差异。
答案 1 :(得分:1)
首先,您应该阅读Static, Shared Dynamic and Loadable Linux Libraries上的页面。
这应该澄清你的几个问题。该页面包含对初学者有用的源代码示例。
另一个有趣的参考是Writing DLLs for Linux apps。
答案 2 :(得分:0)