Eclipse ACE TAO Corba Ubuntu 10.4对Corba::对象的未定义引用::\u refcount\u value()

Eclipse ACE TAO Corba Ubuntu 10.4对Corba::对象的未定义引用::\u refcount\u value(),eclipse,ubuntu,corba,ace,tao,Eclipse,Ubuntu,Corba,Ace,Tao,我在获取包管理器中提供的libTao附带的示例程序时遇到了一些问题。我曾经在windows上使用过ace tao,因此我已经有了一些使用它的经验 到目前为止,我已经设置了所有环境变量,为“简单客户端”示例创建了一个新项目。我可以很好地编译.idl。当我尝试编译客户端时,我得到一个链接器错误 Building target: CorbaTest Invoking: GCC C++ Linker g++ -Xlinker -Map -Xlinker txt.txt -Xlinker --cref -

我在获取包管理器中提供的libTao附带的示例程序时遇到了一些问题。我曾经在windows上使用过ace tao,因此我已经有了一些使用它的经验

到目前为止,我已经设置了所有环境变量,为“简单客户端”示例创建了一个新项目。我可以很好地编译.idl。当我尝试编译客户端时,我得到一个链接器错误

Building target: CorbaTest
Invoking: GCC C++ Linker
g++ -Xlinker -Map -Xlinker txt.txt -Xlinker --cref -o"CorbaTest" ./src/EchoC.o ./src/EchoS.o ./src/Echo_Client_i.o ./src/Echo_I.o ./src/client.o -lACE -lTAO -lTAO_AnyTypeCode -lTAO_BiDirGIOP -lTAO_CodecFactory -lTAO_CosNaming -lTAO_DynamicAny -lTAO_EndpointPolicy -lTAO_DynamicInterface -lTAO_IFR_Client -lTAO_ImR_Client -lTAO_IORInterceptor -lTAO_IORTable -lTAO_Messaging -lTAO_ObjRefTemplate -lTAO_PI -lTAO_RTCORBA -lTAO_RTPortableServer -lTAO_PortableServer -lTAO_SmartProxies -lTAO_Strategies -lTAO_TypeCodeFactory -lTAO_Utils -lTAO_Valuetype -lTAO_CSD_ThreadPool -lTAO_TC -lTAO_TC_IIOP -lTAO_Compression -lTAO_ZlibCompressor
./src/EchoC.o:(.rodata._ZTV4Echo[vtable for Echo]+0xe0): undefined reference to `CORBA::Object::_refcount_value() const'
collect2: ld returned 1 exit status
make: *** [CorbaTest] Error 1
我在网上找不到任何关于
CORBA::OBbject\u refcount\u value()
的信息,无法为我指明可能丢失的库的方向。我在这里包含了所有推荐的库,但仍然得到相同的错误。这是示例代码,应该根据提供的Tao发行版进行编译和链接。你知道我遗漏了什么吗?哦,如果有什么不同的话,我会使用eclipse


谢谢:)

您的链接器可能在订购库时遇到问题。首先是libACE,然后是libTAO,等等。如果libA依赖于libB,那么libA应该在链接中libB之前(即,在libB的左边)有一些链接器。所以,既然道依赖于王牌,试着把李白放在王牌的左边。事实上,您可以尝试颠倒链接中库的顺序,因为您列出的所有libTAO_*库都依赖于libTAO


更好的是,你可能想看看ACE+TAO附带的免费MPC工具。它可以为大多数平台生成无故障的ACE+TAO生成文件。它位于$ACE_ROOT/bin目录中,并且有很好的文档记录。有关信息,请参阅。我不知道它在Eclipse中的效果如何,但它可能值得一试。也许您可以在Eclipse中编辑代码并从命令行进行编译。

我最终设法让它工作起来,不记得现在是如何工作的:S但我们最终发现,我们长期存在的无线corba问题是由ace tao(无法连接到iiop windows客户端,有时是windows上运行的名称服务)造成的。更改为omni orb后,我们已解决此问题,因此不再使用Ace/Tao。希望这是一个有用的建议,对于任何与ACE/TAO有关的wifiYes问题的人来说,这可以通过颠倒链接线上库的顺序来解决。