交叉编译-检索目标CPU和版本



我正在使用cmake交叉编译VxWorks。当我第一次运行cmake时,我必须提供有关编译器,目标操作系统等的信息。

在交叉编译对话框中,我设置了三个目标系统设置:

    操作系统
  1. 处理器

(后面跟着编译器等)

虽然我可以使用CMAKE_SYSTEM_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列表中的VxWorks特定部分(与if( VxWorks )检查以确保在使用其他系统时不执行)。

<现在h2> (解决方案):

我为VxWorks和所需的处理器编写了工具链文件平台文件

缺点:

  • 我必须写一些额外的文件:
    • 工具链文件
    • VxWorks平台文件
    • 每个处理器(和处理器类型,GnuDiab)的进一步平台文件

优点:

  • 分隔项目和目标设置
  • 单独的系统和处理器设置-很容易添加新的处理器在一个非常清晰的方式,但保持系统设置
  • 我在工具链文件中写了一些设置,CMake加载了相关的系统/处理器设置

最新更新