Когда я добавляю проект idl в redhawk, выполните следующие действия:
$ ./reconf
$ ./configure
$ sudo make
$ sudo make install
Я могу найти недавно добавленный файл idl в REDHAWK Target SDR каталог.
При проверке возможности вызова idl-файла я добавил заголовочный файл и уже вызвал интерфейс функции, но во время компиляции ошибка: неопределенная ссылка на «xxxxxxxx»
например:
#include <redhawk/XH_IDL_TEST/xh_idl_test.h>
class data_t_test_base : public Component, protected ThreadedComponent
{
public:
data_t_test_base(const char *uuid, const char *label);
~data_t_test_base();
void start() throw (CF::Resource::StartError, CORBA::SystemException);
void stop() throw (CF::Resource::StopError, CORBA::SystemException);
void releaseObject() throw (CF::LifeCycle::ReleaseError,CORBA::SystemException);
void loadProperties();
protected:
xh_idl_test::_objref_dataChar *XH;
private:
}
ошибки:
/home/sca/sca_com/data_t_test/cpp/data_t_test.cpp:21: неопределенная ссылка на `xh_idl_test :: _ objref_dataChar :: pushPacket () ‘
Могу я спросить, как решить эту проблему?
В REDHAWK доступ к IDL осуществляется через порты, либо использует (вывод), либо предоставляет (ввод). Как только проект IDL установлен в вашей системе, в компонент добавьте порт. Отредактируйте интерфейс порта, нажав «Обзор …». В меню «Выбрать и интерфейс» нажмите «Показать все интерфейсы», а затем выберите нужный интерфейс.
В случае портов ввода или вывода будут созданы соответствующие заглушки.
Других решений пока нет …