代码之家  ›  专栏  ›  技术社区  ›  vibz

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

  •  0
  • vibz  · 技术社区  · 11 年前

    嗨,我是ACE ORB(TAO)的新手。我现有的系统与 xcc公司 solaris中的编译器。现在我要用 全球通信中心 而不是编译器。当我尝试使用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为ACEORB编译idl源代码。这个错误并没有为我提供关于这个错误背后原因的任何其他线索。。在哪里可以找到有关此错误的详细信息?

    我在网上看不到太多关于tao_idl编译的帮助。有人能解释一下吗

    2 回复  |  直到 11 年前
        1
  •  0
  •   Johnny Willemsen    11 年前

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

        2
  •  0
  •   vibz    11 年前

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

    1. 如果定义了宏TAO_IDL_PREPROCESSOR,则它将使用该宏。
    2. 否则,如果定义了宏ACE_CC_PREPROCESSOR,则将使用该宏。
    3. 否则,将使用“cc”

    我遇到的问题是,我试图使用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++成为预处理器。