背景
官方軟件包里沒有的
可以以庫或組件形式加入
本次僅為了驗證,加到庫
過程
下載源碼 假設為 lib_demo
自己的板子目錄為bsp/stm32
代碼目錄結構
bsp/stm32librarieslib_demo //新建文件夾src //把lib_demo里源碼文件放進來inc //把lib_demo里頭文件放進來SConscript //編譯腳本
寫編譯腳本 SConscript
from building import *cwd = GetCurrentDir()#path 定義頭文件路徑,根據實際修改
path = [ cwd + '/inc',cwd + '/inc/lib_demo',
]# 要編譯的源文件路徑,根據實際修改
src = Glob('src/*.c') + Glob('src/lib_demo/*.c')# 可能依賴不同的庫,根據實際修改
group = DefineGroup('Libraries', src, depend = ['RT_USING_LIBC'], CPPPATH = path)Return('group')
在根目錄下的 SConscript 里包含 lib_demo 的SConscript
可以加print() 打印,確認編譯到了
結尾處返回前,加
objs = objs + SConscript(os.path.join(cwd, 'xxx/libraries/lib_demo/SConscript'))
如果依賴libc,注意在 rtconfig.h 里的宏 RT_USING_LIBC 需要定義
調試
scons --verbose
輸出編譯過程的詳細信息
參考
- deepseek
- https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/README