来源:技术让梦想更伟大
作者:李肖遥
我们经常使用静态库或者动态库,那么在NXP的s32k144使用中,如何将静态库文件 (*.a) 添加到 S32 Design Studio GCC 项目中呢?
本文介绍两种方法,这些方法在库更新如何反映到项目构建过程中的意义上彼此不同。
1添加一个不依赖于可执行(elf)文件的静态库这种方法假设库不会改变,库的更新不会触发项目重建过程,如果库更改,则需要手动清理项目(假设没有其他源文件已更改),并且下一个构建链接更新的库。
点击 Project Properties -> C/C++ Build -> Settings -> Standard S32DS C Linker -> Libraries , 如下图
注意,GCC 默认为输入上述对话框的库名称添加前缀“lib”和扩展名“.a”。
在上面的示例中,GCC 链接器将在文件夹“c:\my_libs”中搜索名为“libtestlib.a”的库文件,如果找不到库,则会发生链接器错误。
对于自定义库名称,请在库名称开头添加冒号“:”以禁用默认前缀/扩展名扩展,GCC 链接器现在在下面的示例中搜索文件名“testlib.lib”:
2将静态库与依赖项添加到可执行(elf)文件如果静态库已更改 - “触及”,有时需要触发项目重建,在这种情况下库应添加到不同的项目对话框中:
点击Project Properties -> C/C++ Build -> Settings -> Standard S32DS C Linker -> Miscellaneous -> Other objects, 如下图
“Other objects”列表中的项目被传播到 USER_OBJS makefile 变量中,这是构建目标的自动生成的makefile规则(elf)。