|
我在使用ST Visual Develop开发STM8S207MBT6时需要提供一个静态库(例如MDK中创建的.lib库文件)给客户调取接口使用,但是我并不想客户查看函数调取接口的具体源码,请问该如何操作呢? STM 55 |
用SDRAM刷ltdc有白线会出现是啥情况
在keil中仿真程序时,结构体变量出现错乱
什么是 GPIO 事件?如何将事件关联到外设
中断服务程序抖动
STM32L562DK探索板——如何启用蓝牙功能?
自己写驱动深入学习与调用Hal库的取舍
关于最近学习C语言回调和钩子函数的想法,以及对HAL库回调函数的困惑
STM32 上同时跑 LWIP 的 TCP 与 UDP 连接
使用 HAL 库通过串口以 ASCII 形式发送整型数据
USB Host 外部中断按键失效
微信公众号
手机版
这样不需要.C 文件,将.O 文件导入工程中即可正常编译使用,从而隐藏了源代码。
楼主可以试试看行不行~~
感谢您的回复,
首先关于制作.lib静态库文件,我这里进行了尝试可以编译生成,将下面这段命令行复制到Project Settings->Post-Build->Commands中:(其中的example为你需要制作的文件名且必须为小写)
clib -c $(OutputPath)example.lib $(OutputPath)example.o但是生成的lib文件仅能在自身工程中链接使用,发送给客户,添加到客户的工程中使用时,会报错:函数未被定义。
而与之同理的使用.o文件,也是仅能在本工程使用,移植到客户工程进行链接时同样报错,报错与上述.lib一致未找到定义。
我不知道为什么生成的.lib静态库文件并不像其他MDK或iar生成的库一样具备相等的可移植性,或者是操作哪里不对,
或许编译的库跟工程内stm8_interrupt_vector.c等文件差异导致不同工程间无法通用(因为我是新建一个空工程仅添加一个.c和.h生成的单一lib文件,新建工程时默认产生main.c和stm8_interrupt_vector.c文件),
也可能是Cosmic编译器的差异引起的(虽然我尝试更换为客户使用的Cosmic编译器,但问题依然存在)
如果你有兴趣,可以尝试验证一下。