Interop开发疑问:如何添加CMake选项及查找ESP32的cmake-variants.json文件
ESP32 平台 nanoframework 互操作开发 cmake-variants.json 配置指南
文件获取方式
cmake-variants.json 不属于官方示例的默认提供文件,需要你根据自身的硬件和功能需求手动编写,以下是适用于ESP32平台互操作开发的基础模板,你可以直接基于这个修改:
{ "buildType": { "default": "Release", "description": "Build type", "choices": { "Release": { "short": "Release", "long": "Optimized release build", "buildType": "Release" }, "Debug": { "short": "Debug", "long": "Debug build with symbols", "buildType": "Debug" } } }, "settings": { "default": "ESP32_Interop", "description": "Target configuration", "choices": { "ESP32_Interop": { "short": "ESP32 Interop", "long": "ESP32 build with interop feature enabled", "settings": { "TARGET_SERIES": "ESP32", "NF_FEATURE_INTEROP": "ON", "ESP32_TARGET_CHIP": "ESP32_WROOM_32", "NF_FEATURE_RTC": "ON" } } } } }
你可以根据自己的ESP32芯片型号修改ESP32_TARGET_CHIP的值,额外需要开启的功能也可以在settings节点里添加对应CMake变量。
文件放置路径
- 如果你是编译nanoframework官方固件源码来打包自定义固件,将文件放在固件源码的根目录,和顶层的
CMakeLists.txt文件同级即可 - 如果你是在自己的独立互操作项目中使用,将文件放在VS打开的工作区根目录即可
配置生效操作
- 文件放置完成后,在VS的解决方案资源管理器中右键点击顶层
CMakeLists.txt,选择「删除缓存并重新配置CMake」 - 配置完成后可以在CMake变量视图中确认
NF_FEATURE_INTEROP的值为ON,代表互操作功能已经开启 - 后续编译固件时你的C++互操作程序集会被自动纳入编译流程
注意事项
- 官方预编译的nanoframework固件默认未开启互操作功能,必须自定义编译固件才能使用C++程序集
- 修改
cmake-variants.json后必须刷新CMake缓存才会生效,否则配置不会被识别
内容的提问来源于stack exchange,提问作者opitzh
相关产品推荐
相关产品推荐

