tao_idl returns 使用 gcc 编译时出现不明错误

tao_idl returns with unspecified error when compiling using gcc

您好,我是 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_idlreturn这个错误?我所知道的是 tao_idl 为 ACE ORB 编译 idl 源。此错误没有为我提供有关此错误背后原因的任何其他线索。我在哪里可以找到有关此错误的更多详细信息?

我在网上没有看到对 tao_idl 编译有多大帮助。有人能解释一下吗

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

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

  1. 如果定义了宏TAO_IDL_PREPROCESSOR,那么它将使用它。
  2. 否则,如果定义了宏 ACE_CC_PREPROCESSOR,那么它将使用它。
  3. 否则使用"cc"

我遇到的问题是我试图使用 g++ 作为预编译器,但没有设置上述任何宏。因此 TAO_IDL 一直在寻找 cc.

解决方法: 导出 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++ 成为预处理器。