2010-10-27 23 views
0

我們正在獲取這些約束錯誤,例如m_NCS_SEL_OBJ_ZERO(& nSelObjSet)在我們的代碼中調用。這是在使用tilera編譯器交叉編譯時 - tile-g ++。用g ++它總是編譯好。任何指針都會有幫助。Tilera交叉編譯 - 任何關於此錯誤的想法錯誤:未知的asm約束字母

注: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: 

阿倫L.

回答

0

的問題你的交叉編譯版本是從主機系統中選擇標題,而不是他適合目標的aders。

這些「未知」asm約束字母是在glibc's i386-specific definitions of FD_ZERO() and FD_ISSET()中使用的特定於i386的字母。

+0

是的,交叉編譯器正在拾取主機頭。現在糾正爲FD_ZERO拾取目標標題並編譯通過。馬修,我感謝你的答案。 – arun 2010-10-28 05:41:30