【问题标题】:tao_idl returns with unspecified error when compiling using gcc使用 gcc 编译时 tao_idl 返回未指定的错误
【发布时间】:2015-03-13 09:31:08
【问题描述】:

您好,我是 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 编译的帮助。有人能解释一下吗

【问题讨论】:

    标签: c++ gcc corba idl ace


    【解决方案1】:

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

    【讨论】:

    • 我有 cc(我的机器里有 solaris C 编译器)你是说 tao_idl 需要 CC 作为预处理器通过查看这个错误吗?我以为错误消息中的CC 指向我的xmake 文件中的一个变量CC = $(TOOLSBIN)xcc -c $(INC) -I$(SRC)
    • 可能是 xcc 和 gcc 的编译器标志不同,这可能会导致问题。你有没有用 gcc 编译完整的树?也许尝试手动运行 TAO_IDL 并通过 -Ucc 来获取 cc 预处理器?
    【解决方案2】:

    除了@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++ 成为预处理器。

    【讨论】:

      猜你喜欢
      • 2019-05-29
      • 2014-09-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多