Tilera 交叉编译 - 关于此错误的任何想法:未知的 asm 约束字母

问题描述 投票:0回答:1

无论何时在代码中调用 m_NCS_SEL_OBJ_ZERO(&nSelObjSet) 等 OSAF 调用,我们都会遇到这些约束错误。这是使用tilera编译器-tile-g++进行交叉编译时的情况。使用 g++ 它总是编译得很好。任何指示都会有帮助。

注意:m_NCS_SEL_OBJ_ZERO 是一个宏,替换为 FD_ZERO

示例代码:

// initialise and set selection object set
m_NCS_SEL_OBJ_ZERO(&nSelObjSet);
m_NCS_SEL_OBJ_SET(nMdsSelObj, &nSelObjSet);**

错误如下:

/u/TILERA/STACK/DEV/lte/lte_enb/enb_cfgmgr/src/ConfigManagerThread.cxx:
"/u/TILERA/STACK/DEV/lte/lte_enb/enb_cfgmgr/src/ConfigManagerThread.cxx", line 103: error:
          unknown asm constraint letter 'c'
         m_NCS_SEL_OBJ_ZERO(&nSelObjSet);
         ^

"/u/TILERA/STACK/DEV/lte/lte_enb/enb_cfgmgr/src/ConfigManagerThread.cxx", line 103: error:
          unknown asm constraint letter 'D'
         m_NCS_SEL_OBJ_ZERO(&nSelObjSet);
         ^

"/u/TILERA/STACK/DEV/lte/lte_enb/enb_cfgmgr/src/ConfigManagerThread.cxx", line 103: error:
          unknown asm constraint letter 'a'
         m_NCS_SEL_OBJ_ZERO(&nSelObjSet);
         ^

"/u/TILERA/STACK/DEV/lte/lte_enb/enb_cfgmgr/src/ConfigManagerThread.cxx", line 110: error:
          unknown asm constraint letter 'q'
             if (m_NCS_SEL_OBJ_ISSET(nMdsSelObj, &nSelObjSet))
                 ^

4 errors detected in the compilation of "/u/TILERA/STACK/DEV/lte/lte_enb/enb_cfgmgr/src/ConfigManagerThread.cxx".
/u/TILERA/STACK/DEV/lte/lte_enb/enb_cfgmgr/src/EnbCfgMgr.cxx:
c++ g++ tilera
1个回答
1
投票

问题在于您的交叉编译构建是从主机系统获取标头,而不是适合目标的标头。

这些“未知”asm 约束字母是 i386 特定的字母,用于 glibc 的 FD_ZERO() 和 FD_ISSET() 的 i386 特定定义

© www.soinside.com 2019 - 2024. All rights reserved.