
我在使用ST Visual Develop开发STM8S207MBT6时需要提供一个静态库(例如MDK中创建的.lib库文件)给客户调取接口使用,但是我并不想客户查看函数调取接口的具体源码,请问该如何操作呢? STM 55 |
关于三轴陀螺仪 I3G4250D
使用stm32F407连接PHY芯片进行以太网通讯,一插网线就会进入错误中断。
STM32H7双核调试问题:CM7能成功调试但CM4始终报"Failed to read ROM table via AP 3"错误
stm32G474的flash模式如何判定?single bank 和dual bank
STM8S003无法检测到引脚电平
STM8 @svlreg 问题
STM32N6 使用SDMMC1-eMMC作为外部存储器,地址如何配置
STM32N6570-DK预装的Demo在哪里下载?
FlyMcu下载写入出错问题
STM32F373 SDAC1+DMA,数据只能更新一次?
这样不需要.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编译器,但问题依然存在)
如果你有兴趣,可以尝试验证一下。