硬汉嵌入式论坛

 找回密码
 立即注册
查看: 686|回复: 5
收起左侧

[其它] 如何将项目中的部分代码封装成库,别人看不到

[复制链接]

5

主题

7

回帖

22

积分

新手上路

积分
22
发表于 2024-11-13 14:37:03 | 显示全部楼层 |阅读模式
如何将项目中的部分代码封装成库?有部分代码不想对外公布。大神指点。
回复

使用道具 举报

8

主题

51

回帖

75

积分

初级会员

积分
75
发表于 2024-11-13 20:16:06 | 显示全部楼层
例如把STM32_USB_Device_Library 库代码中的3个文件: usbd_core.c , usbd_ctrreq.c ,usbd_ioreq.c  封装成库文件,
按照如下的方法执行就可以:
  1. 工程项目编译后,找到相应文件对应的 .o文件,以IAR开发环境为例,.o的文件在Obj文件夹下,
  2. 拷贝armar.exe[路径: c:\Kell\ARM\BIN40]可执行文件,到相应.o文件夹下方;
  3. 新建一个.bat文件,编辑内容如下: armar -r  usb_core.a  usbd_core.o  usbd_ctlreq.o  usbd_ioreq.o
          bat文件说明:  
                   3.1------命令: armar -r
                   3.2------【usb_core.a】生成的.a文件名称                  
                   3.3------ 包括的.o文件,空格隔开
  4. 编辑完.bat文件后,保存关闭,然后点击运行,既可以生成一个usb_core.a的文件
  5.把生成的.a文件,添加到项目中,把原来的文件【usbd_core.c , usbd_ctrreq.c ,usbd_ioreq.c 】从项目中删除;
  6. 再重新编译原项目即可。

附件说明:
  一、armar.exe可执行文件路径:
    armar_exe_路径.png

二、拷贝armar到: 包括.o文件的文件夹下:
拷贝armar到文件夹下.png

三、创建bat文件,编辑并保存:
armar_bat文件内容.png
四、添加.a文件到项目中:
添加_a文件到项目中.png



评分

参与人数 1金币 +100 收起 理由
eric2013 + 100 很给力!

查看全部评分

回复

使用道具 举报

6

主题

50

回帖

68

积分

初级会员

积分
68
发表于 2024-11-13 20:47:08 | 显示全部楼层
可以用keil生成lib库
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115434
QQ
发表于 2024-11-14 09:47:46 | 显示全部楼层
xfcbbs2 发表于 2024-11-13 20:16
例如把STM32_USB_Device_Library 库代码中的3个文件: usbd_core.c , usbd_ctrreq.c ,usbd_ioreq.c  封装成 ...

这个回复太强了,相当给力用心的回复
回复

使用道具 举报

1

主题

2

回帖

5

积分

新手上路

积分
5
发表于 9 小时前 | 显示全部楼层
你好,在Keil中使用的是armar.exe,那在IAR中我应该选择什么执行文件,还有上边描述的是三个.o文件合成一个.a文件,现在我想在IAR软件中将每一个.o文件合成一个.lib文件  bat文件我该如何编写
回复

使用道具 举报

81

主题

490

回帖

733

积分

金牌会员

积分
733
发表于 7 小时前 | 显示全部楼层
panweixyz 发表于 2025-4-25 09:40
你好,在Keil中使用的是armar.exe,那在IAR中我应该选择什么执行文件,还有上边描述的是三个.o文件合成一个 ...

感觉是要遍历整个object目录,然后对每一个.o文件都执行armar命令
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-4-25 19:14 , Processed in 0.305513 second(s), 37 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表