Cmake 交叉编译-检索目标CPU和版本
我正在使用cmake交叉编译VxWorks。当我第一次运行cmake时,我必须提供有关编译器、目标操作系统等的信息 在交叉编译对话框中,我设置了三个目标系统设置:Cmake 交叉编译-检索目标CPU和版本,cmake,cross-compiling,Cmake,Cross Compiling,我正在使用cmake交叉编译VxWorks。当我第一次运行cmake时,我必须提供有关编译器、目标操作系统等的信息 在交叉编译对话框中,我设置了三个目标系统设置: 操作系统 版本 处理器 (后面是编译器等) 虽然我可以使用CMAKE\u SYSTEM\u NAME检索第一个,但无法获取版本和处理器。 两者都返回一个空字符串 下面是一个例子: MESSAGE("CMAKE_SYSTEM_PROCESSOR: ${CMAKE_SYSTEM_PROCESSOR}") MESSAGE("CMAKE_
CMAKE\u SYSTEM\u NAME
检索第一个,但无法获取版本和处理器。
两者都返回一个空字符串
下面是一个例子:
MESSAGE("CMAKE_SYSTEM_PROCESSOR: ${CMAKE_SYSTEM_PROCESSOR}")
MESSAGE("CMAKE_SYSTEM_VERSION: ${CMAKE_SYSTEM_VERSION}")
输出:
CMAKE_SYSTEM_PROCESSOR:
CMAKE_SYSTEM_VERSION:
我的Cmake版本是2.8.10.2,目标操作系统是VxWorks(如果这很重要,编译器是WindRiver GNU)
如何获得我在开始时设置的版本和处理器?或者,如果我交叉编译到cmake未知的操作系统,这是不可能的
(顺便说一句,编译效果很好)到目前为止,这似乎是不可能的。我总是收到空字符串 然而,有一个有效的解决方案,我想这是更好的方法: 之前: 我指定了交叉编译设置(编译器和目标系统,见问题),然后它在CMake列表中的VxWorks特定部分上运行(使用
if(VxWorks)
进行检查,以确保在使用其他系统时不会执行)
现在(解决方案):
我为VxWorks和所需处理器编写了工具链文件和平台文件
缺点:
CMAKE_SYSTEM_PROCESSOR:
CMAKE_SYSTEM_VERSION:
- 我必须写一些额外的文件:
- 工具链文件
- VxWorks平台文件
- 每个处理器的其他平台文件(以及处理器类型、Gnu和DIB)
CMAKE_SYSTEM_PROCESSOR:
CMAKE_SYSTEM_VERSION:
- CMake列表现在干净多了
- 单独的项目和目标设置
- 独立的系统和处理器设置-易于以非常清晰的方式添加新处理器,但保留系统设置
- 我在工具链文件中写入一些设置,CMake加载相关的系统/处理器设置