最近需要在ubuntu环境下利用GCC生成静态库(static library:.a file),就学习了一下实现过程。
我安装的是以下版本:
各版本arm-gcc区别与安装_weilaike7的博客-CSDN博客_armcc安装
GNU Arm嵌入式工具链是一套现成的开源工具套件,用于 C、C++编程。GNU Arm嵌入式工具链面向 32 位Arm Cortex-A、Arm Cortex-M 和Arm Cortex-R 处理器系列。GNU Arm嵌入式工具链包括 GNU 编译器 (GCC),可直接从 Arm 免费获得,用于 Windows、Linux 和 Mac OS X 操作系统上的嵌入式软件开发。
arm-none-eabi-gcc -c foo.c
arm-none-eabi-ar -rc libfoo.a foo.o
网上搜了一下,就找到上述两行Gcc 命令用于生成static library,注意这里arm-none-eabi-gcc指的是你实际安装使用的gcc工具路径,我这里就是GCC Tool path/arm-none-eabi-gcc/
生成这个.a 文件之后,我还需要把它放到另一个project相应位置,而另一个project是使用Cmake进行编译连接,也就是通过编写Cmakelist.txt去生成Makefile去指导gcc如何去编译、链接文件。
那么我还得学习一下如何在cmake里链接外部导入的静态库。
add_library(foo STATIC IMPORTED) set_property(TARGET foo PROPERTY IMPORTED_LOCATION "/path/to/libfoo.a")