如何在redhawk上添加关于idl的项目

时间:2017-12-18 02:11:14

标签: c++ redhawksdr

按照以下步骤在redhawk中添加idl项目时:

$ ./reconf
$ ./configure
$ sudo make
$ sudo make install

我可以在 REDHAWK Target SDR 目录中找到新添加的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()'的未定义引用

请问如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

在REDHAWK中,IDL通过端口访问,使用(输出)或提供(输入)。在系统中安装IDL项目后,在组件上添加一个端口。单击&#34;浏览...&#34;编辑端口的界面。在&#34;选择和界面&#34;菜单,单击&#34;显示所有界面&#34;,然后选择所需的界面。

对于输入或输出端口,将生成相应的存根。