除了共享库,RTP也可以像内核态一样,去使用静态库 - Static Library。
它俩的区别是
RTP即使只调用共享库中的一个函数,也会加载整个库文件;RTP如果只使用静态库中的一个函数,则只会链接该函数所在的.o文件,而不是整个.a文件
多个RTP使用同一个共享库时,一共只需要加载一次;多个RTP使用同一个静态库时,每个RTP都要去链接、加载它
静态库的使用就简单多了,VIP都不需要包含INCLUDE_SHL
还是以Vx69为例,新建一个RTP工程
根据Target选择相应的Active build spec
Build tool改为Librarian
将代码加入工程,build得到.a文件
这时就可以在应用程序的RTP里调用这个静态库的函数了
只需要在工程的属性中包含这个.a文件即可
可以看到,这个例子是没有使用共享库的
如果你还保留着共享库的例子,可以跟本文的例子对比一下:使用静态库的vxe明显要大一些