问题标签 [cmake-language]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - 使用 CMake 配置 Stm32 项目
我最近将我的 stm32 项目切换到 CMake 以独立于 IDE。根存储库(应用程序)包含多个子模块(HAL、FreeRTOS 等),其 CMakeLists.txt 明确包含每个使用的文件:
该解决方案有效,但我知道这不是一种可持续的方法。所以我尝试在 lib-hal 和 lib-freertos 子模块中创建库,指定它们的来源和包含
然后使用
和
将子模块“导入”到应用程序项目中。但是在构建可执行文件时,gcc 无法访问位于根目录include中的文件stm32h7xx_hal_conf.h和FreeRTOSConfig.h。我不想将配置标头放入子模块中,因为它们用于具有不同配置的多个项目中。是否可以在将库添加到父项目后以某种方式扩展已指定的库目录搜索范围?
项目文件结构:
提前感谢您的回复。
cmake - 使用 CMAKE 从特定行开始读取文件
我想从特定行开始读取文件。Cmake 官方文档建议使用带有偏移量的 file()但我不确定它的用法。我要阅读的文件是test.mak:
我有一个 cmake 文件(该函数来自互联网,它适用于我的用例),我想从“#SYMBOLS”开始读取 test.mak 文件,以便忽略/跳过此行之前定义的宏,然后我想在我当前的 cmake 中设置宏:
偏移设置不起作用,因此我也得到了我不需要的宏 TEST_COMPONENTS。注意:TEST_COMPONENTS 只是一个示例,在“# SYMBOLS”之前有多行宏定义我想跳过。感谢您提前解决此问题的任何建议。
cmake - 如何在终端中隐藏cmake编译器定义-D
我使用 add_compile_definitions(var=value......) 将数百个编译器定义添加到我的根 CMakeLists.txt 中,这些定义在构建期间使用 -Dvar=value 在命令行/终端中打印出来。我想关闭回声以隐藏终端窗口中的打印件。到目前为止,我已经尝试使用
但没有任何帮助,尽管 cmakecache.txt 中的 CMAKE_VERBOSE_MAKEFILE 设置为 False,CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL 以某种方式设置为 1,也在缓存中将此 var 更改为“0”以进行调试没有帮助......有人有吗更好的建议?