函数存在于.o文件中,而不存在于.so文件中的原因是因为.o文件是目标文件,包含了编译器编译源代码生成的机器代码和符号表等信息,但没有进行链接的过程。而.so文件是共享对象文件,是经过链接器将目标文件和其他依赖的库文件链接生成的可执行文件。
函数存在于.o文件中的好处是可以在编译阶段进行优化和调试,可以单独编译和链接不同的目标文件,方便代码的管理和维护。同时,目标文件可以被多个.so文件共享使用,提高了代码的复用性和可扩展性。
而.so文件中没有包含函数的具体实现,只包含了函数的符号表信息,这是因为.so文件是动态链接库,它在程序运行时被加载到内存中,并与其他模块进行链接。函数的具体实现在.so文件被加载到内存后,通过符号表进行动态链接,实现函数的调用。
总结起来,函数存在于.o文件中是为了方便编译和链接的过程,而不存在于.so文件中是因为.so文件是动态链接库,函数的具体实现在运行时通过符号表进行动态链接。
领取专属 10元无门槛券
手把手带您无忧上云