CMake 工具链文件:嵌入式开发的适当值"CMAKE_SYSTEM_PROCESSOR"
CMake toolchain file: Appropriate value of `CMAKE_SYSTEM_PROCESSOR` for embedded development
在尝试阅读文档并阅读互联网上的其他示例后,我开始为嵌入式CMake指定以下变量。
set(CMAKE_SYSTEM_NAME Generic)
#set(CMAKE_SYSTEM_PROCESSOR arm)
set(CMAKE_SYSTEM_PROCESSOR cortex-m3)
我已经尝试了arm
和cortex-m3
作为提供给CMAKE_SYSTEM_PROCESSOR
的值,但我仍然必须使用以下标志手动识别编译的架构。
add_compile_options(
-mcpu=cortex-m3
-mthumb
)
我本以为这些看似明显的标志会被 CMake 抽象出来,并通过指定CMAKE_SYSTEM_PROCESSOR
的值来拾取。
我是否搞砸了一些明显的东西,或者我应该在我的 CMake 工具链文件中使用不同的变量?
你的假设是错误的。所有 arm 处理器都不同。
举个例子,这里有一些 arm 内核可能具有的硬件选项:
- 拇指-1 指令
- 拇指-2 指令 硬件乘法(32/32/32 和 32/
- 32/64(
- 分
- DSP
- 单精度浮点硬件
- 双精度浮点硬件
- 信任区域
- 共处理器
- 还有更多...
因此,不存在单个臂芯,更不用说M3核心了,它因硬件制造商的实现而异。
因此,您必须为 arm 内核指定编译器选项。
相关文章:
- 如何创建一个CMake变量,除非显式重写,否则使用默认值
- 使用C++库在Android项目中修改gradle中的cmake参数,用于插入指令的测试
- CMake-按正确顺序将项目与C运行时对象文件链接
- 使用CMake创建QML插件
- cmake如何在fedora工作站中找到boost静态库包
- 使用CMake检测支持的C++标准
- CMake项目Boost库错误:Boost/config/compiler/gcc.hpp:165:10:致命错误:cs
- 如何使用CMake编译.proto文件来生成.grpcp.pb.cc和.grpc.pb.h文件
- cmake在我的项目中所需的所有静态库都不成功
- 在CMakeLists.txt的安装功能中使用.cmake文件有什么用
- 无法链接 CMake 中的本地库
- libssh 的函数在构建 libssh 时无法在 Qt 和 cmake 错误中找到
- 如何在Ubuntu中使用cmake设置qt4
- 使用cmake从源代码构建MySQL连接器/C++失败(与以前的声明冲突)
- 为什么 cmake 许可证<>样式不包括?
- cmake更新缓存的变量
- 将--whole archive链接器选项与CMake和具有其他库依赖项的库一起使用
- 使外部项目可用于find_package CMake
- 生成MRPT库时cmake配置失败
- 使用VS Code和CMake Tools运行自定义命令