software 原文存档
platformio随意添加文件夹和文件JSON文件和INI文件配置
问题原因:
我想在pio里面随便放置文件夹,让他参与编译。添加的文件是C文件,pio工程是CPP文件。
下面是使用NXP的LVGL图形库生成工具GUI-GUIDER1.3.0生成的文件夹
我要添加的文件结构
├─.pio (no show,because too long)
├─.vscode
├─include
├─lib
│ └─BLTGUI
│ ├─custom
│ └─generated
│ ├─guider_customer_fonts
│ ├─guider_fonts
│ └─images
└─src
困难点一:
不知道放哪里,因为不懂pio的时候,放哪里都报错。
困难点二:
混合使用C和CPP,会报错undefined reference to,是LD连接错误
main.cpp:26: undefined reference to `setup_ui'
collect2.exe: error: ld returned 1 exit status
*** [.pio\build\esp32dev\firmware.elf] Error 1
JSON解决方案:(已验证OK)
使用library.json文件:官网说明,让自己的新文件夹成为一个库文件
下面是完整的一个json
`{ "name": "BLTGUI", "keywords": "bltgui", "description": "bltgui des", "version": "1.0", "authors": { "name": "lb" }, "licence": "MIT", "frameworks": "arduino", "platforms": "espressif32", "build" : { "unflags": "-std=gnu++11", "flags": [ "-std=c99", "-I custom", "-I generated", "-I generated/guider_customer_fonts", "-I generated/guider_fonts", "-I generated/images" ], "srcFilter": [ "+<*.c>", "+<custom/*.c>", "+<generated/*.c>", "+<generated/guider_customer_fonts/*.c>", "+<generated/guider_fonts/*.c>", "+<generated/images/*.c>" ] } }`
最重要的说明点:
-
srcFilter里面要用“+<xxx/xxx>”的格式。不能直接用“xxx”。官网位置
-
多文件夹不能直接放在lib下,要放在lib/xxname/下,json也是放在这个下面和多文件夹并列。
INI解决方案:(待验证)
关于文件src路径添加到编译的设置问题:build_src_filter
这个build_src_filter是ini里面的src路径设置,和json里面的设置,语法相同。
+<PATH>包括模板-<PATH>排除模板- PATH是相对于src_dir的
- PATH可以使用GLOB全局通配符
- src_dir在ini里不设置默认就是src文件夹。可以指定其他文件夹。
例如:+<*> -<.git/> -<.svn/>