所有栏目 | 云社区 美国云服务器[国内云主机商]
你的位置:首页 > 云社区 » 正文

静态库和动态库的区别?

发布时间:2020-04-12 08:44:43

资讯分类:动态库  静态库  区别  静态  模拟器  合并
静态库和动态库的区别?

静态库:.a和.framework 动态库:.dylib和.framework静态库:链接时,静态库会被完整地复制到可执行文件中,被多次使用旧有多份冗余拷贝 动态库:链接时,不复制,程序运行时系统动态加载到内存,供程序调用,系统只加载一次,多个程序共用 需要注意的是:项目中如果使用了自制的动态库,不能被上传到appstore 模拟器的架构是x86_64,真机的架构是arm64,arm7,arm7s 终端指令真机和模拟器合并.a cd /Users/lili/Library/Developer/Xcode/DerivedData/StaticDemo-gqjycc../Build/Products/libdev模拟器的lib文件夹所在目录 可以借助lipo -info 静态库文件地址支持哪些平台 lipo -info staticDemo.ais architecture:x86_64(7),i386(5)模拟器;真机的是are armv7 arm64(5s) armv7s(iphone5c) 合并真机和模拟器静态库合并为一个静态库 lipo -create libdev/staticDemo.a libPro/staticDemo.a -output HMTool.alipo -create 需要合并的静态库1 需要合并的静态库2 -output 合并之后的文件夹名称 注意:虽然将真机和模拟器的静态库合并在一起之后,以后我们就不用关心当前是运行在模拟器还是真机了,但是如果在程序发布时还是建议大家使用真机的静态库

静态库和动态库的区别?

动态链接库是DynamicLinkLibrary,也就是常说的dll文件。dll文件里面包含程序运行需要的函数。

如果程序用动态链接库方式编译,运行时需要依赖电脑里的dll文件,否则不能运行。

静态链接库方式编译,就会把函数整合在exe文件中,不需要依赖相应的dll文件。

自己调试程序时用,动态库编译,编译速度快。

发布最终程序时,用静态链接库编译。

留言与评论(共有 0 条评论)
   
验证码:
Top