ACE TAO Corba Ubuntu 10.4 неопределенная ссылка на CORBA :: Object :: _ refcount_value () - PullRequest
1 голос
/ 10 июня 2010

У меня возникли некоторые проблемы с получением примеров программ, которые поставляются с libTao в диспетчере пакетов. В прошлом я использовал туз тао с окнами, так что уже имею некоторый опыт с ним.

Пока у меня установлены все переменные среды, созданы новые проекты для примера "Простой клиент". Я могу скомпилировать .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_refcount_value(), чтобы указать мне в направлении библиотеки, которую я могу пропустить. Я включил все рекомендованные библиотеки отсюда http://www.dre.vanderbilt.edu/~schmi...libraries.html и все еще получаю ту же ошибку. Это пример кода, который должен компилироваться и связываться с поставляемым дистрибутивом Tao. Есть идеи, что мне не хватает? Ох, и я использую затмение, если это имеет какое-либо значение.

Спасибо:)

1 Ответ

2 голосов
/ 20 июня 2010

Возможно, у вашего компоновщика проблемы с заказом библиотеки.Сначала у вас есть libACE, затем libTAO и т. Д. С некоторыми компоновщиками, если libA зависит от libB, тогда libA должна быть перед (т.е. слева) от libB в ссылке.Итак, поскольку TAO зависит от ACE, попробуйте поместить libTAO слева от libACE.На самом деле, вы можете попробовать изменить порядок библиотек в вашей ссылке, так как все библиотеки libTAO_ *, которые вы перечислили, зависят от libTAO.поставляется с ACE + TAO.Он может генерировать безошибочные файлы ACE + TAO для большинства платформ.Он находится в каталоге $ ACE_ROOT / bin и хорошо документирован.См. http://www.ociweb.com/products/mpc для информации.Я не знаю, насколько хорошо это будет работать с Eclipse, но, возможно, оно того стоит.Может быть, вы можете редактировать код в Eclipse и компилировать из командной строки.

...