【发布时间】:2020-03-25 05:33:25
【问题描述】:
我已经查看了这里和互联网上的网站,甚至在 cmake.org 上 - 并没有找到这个,但想在这里发布它以防万一。
这是一个示例 cmakelists.txt 文件:
idf_component_register(SRCS "main.c"
INCLUDE_DIRS ".")
- 导入库,指定目标名称和库路径。
-
还指定了库的私有依赖。
add_prebuilt_library(预建“libprebuilt.a” PRIV_REQUIRES spi_flash app_update 日志)
-
main调用库中的函数,因此将其链接到maintarget_link_libraries(${COMPONENT_LIB} PRIVATE prebuilt)
这行得通。当然,PRIV_REQUIRES 中需要是静态预建库使用的所有组件模块。
如需更多真实示例 - 请查看此处: https://github.com/espressif/esp-idf/tree/release/v4.0/examples/build_system/cmake/import_prebuilt
这要归功于 espressif 的人们——当我使用 cmake 编辑器时,即使自动完成功能也没有 找到 add_prebuilt...
希望有人觉得这很有帮助,因为我很快就掉进了这个 cmake 语法兔子洞。
问候, 约翰 W.
【问题讨论】:
-
在 Stack Overflow 上,我们鼓励用户分享他们的知识,但这种分享仍应采用问答形式:问题帖 应说明问题(没有解决方案)需要帮助,答案帖应包含问题帖中所述问题的解决方案。目前,您的问题帖子您问什么(什么是问题)尚不清楚。另请注意,
idf_component_register不是 CMake 的基本功能,而是由 ESP-IDF 提供的。 -
好的——我的错在这里——我认为 add_prebuilt_library 是 cmake 的标准配置——显然不是。这是 ESP32 IDF 特有的。