2015-03-13 109 views
0

嗨,我對ACE ORB(TAO)很新穎。我現有的系統在solaris中的編譯器編譯良好,xcc。現在我得用gcc編譯器代替。當我嘗試編譯使用源代碼的gcc我,我得到以下錯誤當使用gcc編譯時,tao_idl返回未指定錯誤

/sbcimp/run/pd/ACE/6.0.7_x86/64Opt/bin/tao_idl: preprocessor "CC" returned with an error xmake: /sbcimp/run/pd/ACE/6.0.7_x86/64Opt/bin/tao_idl: error 1 (0x1)

爲什麼tao_idl返回這個錯誤?我所知道的是tao_idl編譯ACE ORB的idl源代碼。這個錯誤沒有提供任何關於此錯誤背後原因的其他線索。我在哪裏可以找到有關此錯誤的更多詳細信息?

我沒有看到tao_idl編譯的網上很多的幫助。有人可以在這裏指出一些:

回答

0

除了@Johnny Willemsen的回答之外,我還補充了一些更多細節,以便對某人有所幫助。 TAO_IDL使用外部預處理器。

  1. 如果定義了宏TAO_IDL_PREPROCESSOR,那麼它將使用它。
  2. 否則,如果宏ACE_CC_PREPROCESSOR被定義,那麼它將使用它。
  3. 否則,它會使用「CC」

我有是,我試圖用G ++作爲預編譯器,不設置任何上述宏的問題。因此TAO_IDL一直在尋找cc。

解決方案: 出口TAO_IDL_PREPROCESSOR =/rtcigp /運行/ PD/GCC/32位/ 4.4.1/bin中/克++

然後包括克++二進制到PATH export PATH="$PATH:/rtcigp/run/pd/gcc/32-bit/4.4.1/bin"

這使得克++作爲預處理器。

0

TAO_IDL使用CC作爲預處理器,當你調用TAO_IDL時,你的PATH中是否有可用的,只是嘗試直接從命令行執行CC。

+0

我有cc(solaris C編譯器在我的機器上) 你是說tao_idl需要CC作爲預處理器嗎?看看這個錯誤? 我在xmake文件認爲'在錯誤信息點CC'一個變量 'CC = $(TOOLSBIN)XCC -C $(INC)-I $(SRC)' – vibz 2015-03-13 10:32:32

+0

這可能是因爲編譯器xcc和gcc的標誌是不同的,它會導致問題。你用gcc編譯完整的樹嗎?也許嘗試手動運行TAO_IDL並傳遞-Ucc來獲取cc預處理器? – 2015-03-13 10:38:20