我在使用ST Visual Develop开发STM8S207MBT6时需要提供一个静态库(例如MDK中创建的.lib库文件)给客户调取接口使用,但是我并不想客户查看函数调取接口的具体源码,请问该如何操作呢? STM 55 |
3971b移植3916代码报错
请教 stm8s 复位电路 和VCAP电容问题
请问mcu外设功耗该怎么计算
workbench不生成keil文件怎么调试?
请问有没有stm32u545的ystem-Extended Interrupt Event Controller (EXTI) 详细描述,比如那些gpio属于哪
我的电脑识别不到STM32的ST-LINK驱动(特指针对芯片stm32wle5ccu6)
请问有 AEK-MOT-WINH92参考的demo工程么
L9663驱动开发
stm32 usb复合设备支持键盘鼠标和hid串口通信可以实现吗
Stm32G071 i2c slave配置问题
这样不需要.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编译器,但问题依然存在)
如果你有兴趣,可以尝试验证一下。