当我尝试编译下面的程序时,出现链接器错误:
/tmp/ccAikIsV.o undefined reference to uvlc_encode_blockline
我有声明和类型定义的所有结构 video_controller_t .. etc
int uvlc_encode_blockline(struct video_controller_t* controller, const struct vp_api_picture_t* blockline, bool_t picture_complete );
int uvlc_decode_blockline(struct video_controller_t* controller,struct vp_api_picture_t* picture, bool_t* got_image );
int uvlc_update( struct video_controller_t* controller );
int uvlc_cache( struct video_controller_t* controller,struct video_stream_t* ex_stream);
const uvlc_codec_t uvlc_codec = {
uvlc_encode_blockline,
uvlc_decode_blockline,
uvlc_update,
uvlc_cache,
{ 0 }
};
如果有人有任何建议,请告诉我。
更新
我同意我们应该定义函数来告诉链接器获取并使用它。当我做类似的事情时,我没有收到任何错误。我声明了函数指针:
typedef C_RESULT (encode_blockline_fc)(struct video_controller_t controller,
const struct vp_api_picture_t* blockline,
bool_t picture_complete);
并在下面的结构中使用它:
typedef struct _video_codec_t
{
encode_blockline_fc encode_blockline;
decode_blockline_fc decode_blockline;
update_fc update;
cache_stream_fc cache_stream;
} video_codec_t;
如果以下语法有任何错误,请告诉我:
const uvlc_codec_t uvlc_codec = {
uvlc_encode_blockline,
uvlc_decode_blockline,
uvlc_update,
uvlc_cache,
{ 0 }
};
我同意我们应该定义函数来告诉链接器获取并使用它。当我做类似的事情时,我没有收到任何错误。我声明了函数指针 typedef C_RESULT (encode_blockline_fc)( struct video_controller_t controller, const struct vp_api_picture_t* blockline, bool_t picture_complete); 并在下面的结构中使用它 typedef struct _video_codec_t { encode_blockline_fc encode_blockline; decode_blockline_fc decode_blockline; update_fc 更新;cache_stream_fc 缓存流;}video_codec_t
如果下面的语法有什么问题,请告诉我: const uvlc_codec_t uvlc_codec = { uvlc_encode_blockline, uvlc_decode_blockline, uvlc_update, uvlc_cache, { 0 } };