按照以下步骤在redhawk中添加idl项目时:
$ ./reconf
$ ./configure
$ sudo make
$ sudo make install
我可以在 REDHAWK Target SDR 目录中找到新添加的idl文件。
在测试是否可以调用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()'的未定义引用
请问如何解决这个问题?
答案 0 :(得分:1)
在REDHAWK中,IDL通过端口访问,使用(输出)或提供(输入)。在系统中安装IDL项目后,在组件上添加一个端口。单击&#34;浏览...&#34;编辑端口的界面。在&#34;选择和界面&#34;菜单,单击&#34;显示所有界面&#34;,然后选择所需的界面。
对于输入或输出端口,将生成相应的存根。