使用gcc编译时,tao_idl返回未指定的错误

时间:2015-03-13 09:31:09

标签: c++ gcc corba idl ace

你好,我对ACE ORB(TAO)很陌生。我的现有系统可以在solaris中使用 xcc 编译器编译。现在我开始使用 gcc 编译器。当我尝试使用gcc编译我的源代码时,我收到以下错误

/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编译的帮助。有人能否对此有所了解

2 个答案:

答案 0 :(得分:0)

TAO_IDL使用CC作为预处理器,在调用TAO_IDL时是否在PATH中可用,只是尝试直接从命令行执行CC。

答案 1 :(得分:0)

除了@Johnny Willemsen的回答之外,我还想补充一些细节,以便对某人有所帮助。 TAO_IDL使用外部预处理器。

  1. 如果定义了宏TAO_IDL_PREPROCESSOR,那么它将使用它。
  2. 否则,如果定义了宏ACE_CC_PREPROCESSOR,那么它将使用它。
  3. 否则,它将使用“cc”
  4. 我遇到的问题是我试图使用g ++作为预编译器,而不设置任何上述宏。因此,TAO_IDL一直在寻找cc。

    解决方案: export TAO_IDL_PREPROCESSOR = / rtcigp / run / pd / gcc / 32-bit / 4.4.1 / bin / g ++

    然后将g ++二进制文件包含到PATH中 export PATH="$PATH:/rtcigp/run/pd/gcc/32-bit/4.4.1/bin"

    这使得g ++成为预处理器。

相关问题