在开发过程中, 如果遇到需要把自己的代码编译成静态库文件提供给别人使用, 可以参考以下方法. 编译使用的是 msys 或者虚拟机 linux, 使用 make 命令编译, 推荐使用 msys 工具, 在 W800 的官网下载, 解压后可以直接使用, 免安装, 简单方便.
以一个简单的例子说明. 假如在 app 目录下应用代码结构是这样的, 需要生成一个库文件.




复制 app 目录下的 Makefile 文件分别到所有包含. c 文件的目录下, 然后修改 Makefile 文件中的 TOP_DIR 路径和需要生成的 GEN_LIBS 库文件的名称, 让每一个包含. c 文件的文件夹下都生成一个库文件, 同时父文件夹的库文件还要包含子文件夹库文件, 最终成为一个库文件.
b 文件夹下的 Makefile 文件

c 文件夹下的 Makefile 文件

a 文件夹下的 Makefile 文件

这里 TOP_DIR 指向的是 W80X_SDK_V1. 0. 10 这个文件夹, 所以修改路径要表明 Makefile 所在文件夹与 TOP_DIR 的层级关系. 总共生成三个库文件, lib_a. a, lib_b. a, lib_c. a, lib_a. a 包含 lib_b. a 和 lib_c. a. 在 msys 中进入切换路径到 W80X_SDK_V1. 0. 10 文件夹, 然后执行 make 命令, 等待编译完成.

在 W80X_SDK_v1. 00. 10binbuildw800lib 目录下, 可以看到生成了. a 文件.

复制 lib_a. a 和 a. h 到一个新的 SDK, 来验证编译是否正确. 把 lib_a. a 复制到 lib/w800 目录下, a. h 复制到 app 目录下, 在 main. c 中调用 test_a 接口, 在 SDK 目录下的 Makefile 文件夹中引用 lib_a. a. 然后同样在 msys 中编译生成固件.


下载运行固件, 可以看到输出 log 信息与代码一致.

这样就可以把 lib_a. a 和 a. h 提供给使用者了. 这里举例了代码目录是两层 a 和 b/c, 如果自己的代码目录只有一层或者大于两层, 根据需要修改就可以了.