On 14/06/13 12:36, vijayasarathy m wrote:
>
> Hi All,
>
> I am trying to build ffmpeg with libstagefright enabled for android.
> I am able to build ffmpeg libraries separately.
> But when I was trying to link the ffmpeg libraries with my Android NDK,
> I am getting below linker errors.
>
> */ error: undefined reference to
> 'std::_Rb_tree_decrement(std::_Rb_tree_node_base const*)'/*
> */ error: undefined reference to
> 'std::_Rb_tree_insert_and_rebalance(bool, std::_Rb_tree_node_base*,
> std::_Rb_tree_node_base*, std::_Rb_tree_node_base&)'/*
> */ error: undefined reference to
> 'std::_Rb_tree_decrement(std::_Rb_tree_node_base const*)'/*
> */ error: undefined reference to
> 'std::_Rb_tree_insert_and_rebalance(bool, std::_Rb_tree_node_base*,
> std::_Rb_tree_node_base*, std::_Rb_tree_node_base&)'/*
> */ error: undefined reference to
> 'std::_Rb_tree_increment(std::_Rb_tree_node_base const*)'/*
> */ error: undefined reference to
> 'std::_Rb_tree_increment(std::_Rb_tree_node_base const*)'/*
> */ error: undefined reference to
> 'std::_Rb_tree_decrement(std::_Rb_tree_node_base const*)'/*
> */ error: undefined reference to
> 'std::_Rb_tree_increment(std::_Rb_tree_node_base*)'/*
> */ error: undefined reference to
> 'std::_Rb_tree_rebalance_for_erase(std::_Rb_tree_node_base*,
> std::_Rb_tree_node_base&)'/*
> */ error: undefined reference to
> 'std::_Rb_tree_decrement(std::_Rb_tree_node_base const*)'/*
> */ error: undefined reference to
> 'std::_Rb_tree_insert_and_rebalance(bool, std::_Rb_tree_node_base*,
> std::_Rb_tree_node_base*, std::_Rb_tree_node_base&)'/*
> */ error: undefined reference to
> 'std::_Rb_tree_insert_and_rebalance(bool, std::_Rb_tree_node_base*,
> std::_Rb_tree_node_base*, std::_Rb_tree_node_base&)'/*
> */ error: undefined reference to
> 'std::_Rb_tree_increment(std::_Rb_tree_node_base const*)'/*
> */ error: undefined reference to
> 'std::_Rb_tree_increment(std::_Rb_tree_node_base const*)'/*
> */ error: undefined reference to
> 'std::_Rb_tree_decrement(std::_Rb_tree_node_base*)'/*
> */
> /*
> All the errors are in *stl_tree.h*
>
> In Application.mk, I have tried using both *stlport_static
> and gnustl_static*
Well, which headers did you point your compiler to when you built
ffmpeg? The implementation of the std libraries is free to differ (as
you can see, the undefined symbols are using reserved names), as long as
the external C++ interface is compatible.
When you build ffmpeg, you'll need to point the compiler to the headers
for the std library you wish to link to.
Ben