问题原因:
我想在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/>
声明:
本文采用
BY-NC-SA
协议进行授权,如无注明均为原创,转载请注明转自
走着的小站
本文地址: platformio随意添加文件夹和文件JSON文件和INI文件配置
本文地址: platformio随意添加文件夹和文件JSON文件和INI文件配置