I think this is fixed now. I am building with CMake and needed to declare
the target libraries as PUBLIC not PRIVATE.
On Tue, Jul 14, 2020 at 12:25 PM David Aldrich <david.aldrich.ntml@gmail.com>
wrote:
> Hi
> I have built a single shared library consisting of my code and multiple
> dpdk libraries, using dpdk-stable-18.11.8 on Centos 7 with the gcc
> compiler.
>
> When I link the library to my main.cpp I get linker error:
>
> undefined reference to symbol 'rte_cpu_get_flag_enabled@@DPDK_2.0'
>
> Now, I see:
>
> $ nm librte_eal.so | grep cpu_get_flag_enabled
> 000000000002ec70 T rte_cpu_get_flag_enabled
>
> so 'rte_cpu_get_flag_enabled' is present but
> symbol 'rte_cpu_get_flag_enabled@@DPDK_2.0' is not present
> in librte_eal.so. So that explains the linker error.
>
> What does the suffix '@@DPDK_2.0' indicate?
>
> How would I build a dpdk library with such symbols?
>
> Do I need librte_eal2.so?
>
> Best regards
> David
>