no not like this, Include the path of both in your gcc complilation line like -L/(vpp lib path) -I/(include path) and lib path like opt/rh/devtoolset-9/root/usr/libexec/gcc/x86_64-redhat-linux/9/ld hope this helps.
/Akash On Thu, Sep 30, 2021, 20:54 Venumadhav Josyula <vjosy...@gmail.com> wrote: > Hi Akash, > > Sure I can use help from anywhere. > > >I guess you are using centos and I have good experience on this. > > print LD_LIBRARY_PATH and set the path to the path it says in error. > Then push all the .so and other library files of VPP into this path and try. > Can you elaborate more , you mean like this > [root@8f57181df3a1 /]# find . -name libvlib.so > ./usr/lib64/libvlib.so > LD_LIBRARY_PATH=/usr/lib64 gcc vpp_api_client_test3.c -o > vpp_api_client_test3.o -lvlibmemoryclient -lsvm -lvppinfra -lvlib > ? > >Also mention the path of your VPP /include directory and /library path in > the compilation. > [root@8f57181df3a1 /]# ls -al usr/include/ > total 1652 > .. > .. > ... > > -rw-r--r-- 1 root root 1962 Apr 28 13:34 values.h > drwxr-xr-x 2 bin bin 12288 Sep 13 06:14 vapi > drwxr-xr-x 2 bin bin 4096 Sep 13 06:14 vat > drwxr-xr-x 2 bin bin 4096 Sep 13 06:14 vat2 > drwxr-xr-x 2 bin bin 4096 Sep 13 06:14 vcl > drwxr-xr-x 1 root root 4096 Sep 30 13:29 video > drwxr-xr-x 6 bin bin 4096 Sep 13 06:14 vlib > drwxr-xr-x 2 bin bin 4096 Sep 13 06:14 vlibapi > drwxr-xr-x 2 bin bin 4096 Sep 13 06:14 vlibmemory > drwxr-xr-x 53 bin bin 4096 Sep 13 06:14 vnet > drwxr-xr-x 4 bin bin 4096 Sep 13 06:14 vpp > drwxr-xr-x 3 bin bin 4096 Sep 13 06:14 vpp-api > drwxr-xr-x 60 bin bin 4096 Sep 13 06:14 vpp_plugins > drwxr-xr-x 3 bin bin 4096 Sep 30 12:57 vppinfra > -rw-r--r-- 1 root root 22 Apr 28 13:34 wait.h > -rw-r--r-- 1 root root 32119 Apr 28 13:34 wchar.h > -rw-r--r-- 1 root root 11155 Apr 28 13:34 wctype.h > -rw-r--r-- 1 root root 2529 Apr 28 13:34 wordexp.h > drwxr-xr-x 1 root root 4096 Sep 30 13:29 xen > -rw-r--r-- 1 root root 1704 Apr 28 13:34 xlocale.h > [root@8f57181df3a1 /]# ls -al usr/include/^C > [root@8f57181df3a1 /]# cd - > /root/vpp_c_api_examples > [root@8f57181df3a1 vpp_c_api_examples]# LD_LIBRARY_PATH=/usr/lib64 gcc > vpp_api_client_test3.c -o vpp_api_client_test3.o -lvlibmemoryclient -lsvm > -lvppinfra -lvlib -I/usr/include > Thanks, > Regards, > Venu > > On Thu, 30 Sept 2021 at 20:41, Akash S R <akashsr.akas...@gmail.com> > wrote: > >> Hi Venu, >> >> can I answer this query? just asking as I have not been asked this :) >> >> I guess you are using centos and I have good experience on this. >> print LD_LIBRARY_PATH and set the path to the path it says in error. Then >> push all the .so and other library files of VPP into this path and try. >> >> Also mention the path of your VPP /include directory and /library path in >> the compilation. >> >> >> /Akash >> >> On Thu, Sep 30, 2021, 19:39 Venumadhav Josyula <vjosy...@gmail.com> >> wrote: >> >>> Hi Akash, >>> >>> Thansks, now after devtoolset, >>> >>> @Benoit Ganne (bganne) <bga...@cisco.com> , @Ole Troan >>> <otr...@employees.org> >>> i am getting following error >>> >>> [root@8f57181df3a1 vpp_c_api_examples]# gcc vpp_api_client_test3.c -o >>> vpp_api_client_test3.o -lvlibmemoryclient -lsvm -lvppinfra -lvlib >>> /opt/rh/devtoolset-9/root/usr/libexec/gcc/x86_64-redhat-linux/9/ld: >>> /lib/../lib64/libvlib.so: undefined reference to `classify_get_trace_chain' >>> /opt/rh/devtoolset-9/root/usr/libexec/gcc/x86_64-redhat-linux/9/ld: >>> /lib/../lib64/libvlib.so: undefined reference to >>> `stat_segment_register_gauge' >>> /opt/rh/devtoolset-9/root/usr/libexec/gcc/x86_64-redhat-linux/9/ld: >>> /lib/../lib64/libvlib.so: undefined reference to `os_exit' >>> collect2: error: ld returned 1 exit status >>> [root@8f57181df3a1 vpp_c_api_examples]# >>> >>> Let me paste the code again, >>> #include<stdio.h> >>> #include<stdlib.h> >>> #include <vlibapi/api.h> >>> #include <vlibmemory/api.h> >>> #include <vpp/api/vpe_msg_enum.h> >>> >>> #define vl_typedefs >>> #define vl_endianfun >>> #include <vpp/api/vpe_all_api_h.h> >>> #undef vl_typedefs >>> #undef vl_endianfun >>> >>> int main() >>> { >>> char *name = "vpp-test-app"; >>> >>> clib_mem_init_thread_safe (0, 64ULL << 20); >>> >>> if (vl_client_api_map("/vpe-api")) >>> { >>> printf("unable to map....\n"); >>> goto quit; >>> } >>> if (vl_client_connect("vpp-test-app", 0, 32) < 0) >>> { >>> printf("unable to connect \n"); >>> vl_client_api_unmap(); >>> goto quit; >>> } >>> printf("successfully connected... \n"); >>> quit: >>> return 0; >>> } >>> >>> Is this wrong way, i am trying to use APIs ? >>> >>> Thanks, >>> Regards >>> Venu >>> >>> On Thu, 30 Sept 2021 at 19:00, Akash S R <akashsr.akas...@gmail.com> >>> wrote: >>> >>>> Hey Venu, >>>> >>>> Try "scl enable devtoolset-9 bash" inside your docker or update your >>>> gcc version. >>>> >>>> >>>> /Akash S R >>>> >>>> On Thu, Sep 30, 2021, 18:54 Venumadhav Josyula <vjosy...@gmail.com> >>>> wrote: >>>> >>>>> Hi Benoit, >>>>> >>>>> Thanks for quick reply. >>>>> >>>>> I have docker with following >>>>> [root@8f57181df3a1 vpp_c_api_examples]# rpm -qa | grep vpp >>>>> vpp-lib-21.06.0-4~g0d9d3a0.x86_64 >>>>> vpp-api-lua-21.06.0-4~g0d9d3a0.x86_64 >>>>> vpp-api-python3-21.06.0-4~g0d9d3a0.x86_64 >>>>> vpp-debuginfo-21.06.0-4~g0d9d3a0.x86_64 >>>>> vpp-selinux-policy-21.06.0-4~g0d9d3a0.x86_64 >>>>> vpp-21.06.0-4~g0d9d3a0.x86_64 >>>>> vpp-plugins-21.06.0-4~g0d9d3a0.x86_64 >>>>> vpp-devel-21.06.0-4~g0d9d3a0.x86_64 >>>>> >>>>> This will vpp running in it. >>>>> >>>>> [root@8f57181df3a1 /]# cat /etc/redhat-release >>>>> CentOS Linux release 7.3.1611 (Core) >>>>> [root@8f57181df3a1 /]# >>>>> >>>>> > Eg. use devtoolset-9 (gcc-9). >>>>> >>>>> How do I use it ? >>>>> >>>>> Thanks, >>>>> Regards, >>>>> Venu >>>>> >>>>> On Thu, 30 Sept 2021 at 18:47, Benoit Ganne (bganne) <bga...@cisco.com> >>>>> wrote: >>>>> >>>>>> You should upgrade your compiler... GCC-4 is way too old. >>>>>> Eg. use devtoolset-9 (gcc-9). >>>>>> >>>>>> Best >>>>>> ben >>>>>> >>>>>> > -----Original Message----- >>>>>> > From: vpp-dev@lists.fd.io <vpp-dev@lists.fd.io> On Behalf Of >>>>>> Venumadhav >>>>>> > Josyula >>>>>> > Sent: jeudi 30 septembre 2021 14:49 >>>>>> > To: otr...@employees.org >>>>>> > Cc: RaviKiran Veldanda <ravi.jup...@gmail.com>; vpp-dev <vpp- >>>>>> > d...@lists.fd.io> >>>>>> > Subject: Re: [vpp-dev] VPP Socket API how to use from the >>>>>> application >>>>>> > #socket-api #vpp #sock-api >>>>>> > >>>>>> > Hi Ole / Others, >>>>>> > >>>>>> > >>>>>> > >>>>>> > Thanks for your email, i getting following compilation error >>>>>> > [root@8f57181df3a1 vpp_c_api_examples]# gcc vpp_api_client_test3.c >>>>>> -o >>>>>> > vpp_api_client_test3.o -lvlibmemoryclient -lsvm -lvppinfra -lvlib >>>>>> > In file included from /usr/include/vppinfra/error.h:41:0, >>>>>> > from /usr/include/vlibapi/api.h:24, >>>>>> > from vpp_api_client_test3.c:3: >>>>>> > /usr/include/vppinfra/clib.h:43:18: error: missing binary operator >>>>>> before >>>>>> > token "(" >>>>>> > #if __has_include(<vppinfra/config.h>) >>>>>> > ^ >>>>>> > In file included from /usr/include/vppinfra/mem.h:49:0, >>>>>> > from /usr/include/vppinfra/vec.h:42, >>>>>> > from /usr/include/vppinfra/error.h:53, >>>>>> > from /usr/include/vlibapi/api.h:24, >>>>>> > from vpp_api_client_test3.c:3: >>>>>> > /usr/include/vppinfra/string.h:92:34: error: expected ';', ',' or >>>>>> ')' >>>>>> > before 'dst' >>>>>> > clib_memcpy_fast (void *restrict dst, const void *restrict src, >>>>>> size_t n) >>>>>> > ^ >>>>>> > [root@8f57181df3a1 vpp_c_api_examples]# vim >>>>>> /usr/include/vppinfra/clib.h >>>>>> > +43 >>>>>> > [root@8f57181df3a1 vpp_c_api_examples]# vim >>>>>> /usr/include/vppinfra/clib.h >>>>>> > +43 >>>>>> > [root@8f57181df3a1 vpp_c_api_examples]# gcc --version >>>>>> > gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-44) >>>>>> > Copyright (C) 2015 Free Software Foundation, Inc. >>>>>> > This is free software; see the source for copying conditions. >>>>>> There is NO >>>>>> > warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR >>>>>> > PURPOSE. >>>>>> > >>>>>> > [root@8f57181df3a1 vpp_c_api_examples]# >>>>>> > >>>>>> > >>>>>> > ----------------- >>>>>> > >>>>>> > c -code >>>>>> > ---------------- >>>>>> > >>>>>> > >>>>>> > #include<stdio.h> >>>>>> > #include<stdlib.h> >>>>>> > #include <vlibapi/api.h> >>>>>> > #include <vlibmemory/api.h> >>>>>> > #include <vpp/api/vpe_msg_enum.h> >>>>>> > >>>>>> > #define vl_typedefs >>>>>> > #define vl_endianfun >>>>>> > #include <vpp/api/vpe_all_api_h.h> >>>>>> > #undef vl_typedefs >>>>>> > #undef vl_endianfun >>>>>> > >>>>>> > int main() >>>>>> > { >>>>>> > char *name = "vpp-test-app"; >>>>>> > >>>>>> > clib_mem_init_thread_safe (0, 64ULL << 20); >>>>>> > >>>>>> > if (vl_client_api_map("/vpe-api")) >>>>>> > { >>>>>> > printf("unable to map....\n"); >>>>>> > goto quit; >>>>>> > } >>>>>> > if (vl_client_connect("vpp-test-app", 0, 32) < 0) >>>>>> > { >>>>>> > printf("unable to connect \n"); >>>>>> > vl_client_api_unmap(); >>>>>> > goto quit; >>>>>> > } >>>>>> > printf("successfully connected... \n"); >>>>>> > quit: >>>>>> > return 0; >>>>>> > } >>>>>> > >>>>>> > >>>>>> > ------------ >>>>>> > >>>>>> > >>>>>> > Can you please suggest what can i be doing worng ? >>>>>> > >>>>>> > >>>>>> > Thanks, >>>>>> > Regards, >>>>>> > Venu >>>>>> > >>>>>> > >>>>>> > On Thu, 30 Sept 2021 at 13:21, <otr...@employees.org >>>>>> > <mailto:otr...@employees.org> > wrote: >>>>>> > >>>>>> > >>>>>> > Hi Venu, >>>>>> > >>>>>> > > Any examples for VAPI shared to use binary APIs ? >>>>>> > >>>>>> > Try this for a start: >>>>>> > https://git.fd.io/vpp/tree/src/vpp-api/vapi/vapi_c_test.c >>>>>> > >>>>>> > Cheers, >>>>>> > Ole >>>>>> > >>>>>> > >>>>>> >>>>>> >>>>> >>>>> >>>>>
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#20248): https://lists.fd.io/g/vpp-dev/message/20248 Mute This Topic: https://lists.fd.io/mt/85796959/21656 Mute #vpp:https://lists.fd.io/g/vpp-dev/mutehashtag/vpp Mute #socket-api:https://lists.fd.io/g/vpp-dev/mutehashtag/socket-api Mute #sock-api:https://lists.fd.io/g/vpp-dev/mutehashtag/sock-api Group Owner: vpp-dev+ow...@lists.fd.io Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-