← Back to team overview

rohc team mailing list archive

Re: Error using the ROHC compressor

 

Hello,

I had a problem similar to this when trying to link statically with rohc
libraries, and found that the order of libraries to link is important.

Here is the commands i use to link with rohc libraries:

Compiling my application (rohc_proc.c):

gcc -I./../RoHC-1.1.0 -I./../RoHC-1.1.0/include -c rohc_proc.c -o
rohc_proc.o

Then, Linking my application with rohc libraries:

gcc -static -L./../RoHC-1.1.0/lib -lrohc_decomp -lrohc_comp
-lrohc_common -lm

I noticed also you use absolute path in includes used in your
application:

#include "/home/josie/rohc-1.2.0/src/common/rohc.h"
#include "/home/josie/rohc-1.2.0/src/comp/rohc_comp.h"

i think it should be replaced by:

#include "rohc.h"
#include "rohc_comp.h"

and -I./../RoHC-1.2.0/include in the compilation flags should take care
of translating this includes to absolute path.

Can you please provide the commands or makefile you use for building
your application with rohc library, and if you try to build it
statically?

Thanks
-
Yasser Nour El-Din

On Wed, 2009-10-07 at 22:49 +0200, Josephine Kakande wrote:
> Hello,
> 
> I'm wondering if anyone has been able to figure out a solution to my
> problem.
> 
> I'd really appreciate your feedback.
> 
> Thanks and regards,
> Josephine
> 
> On Wed, Sep 23, 2009 at 11:27 AM, Josephine Kakande
> <jnkakande@xxxxxxxxx> wrote:
>         
>         Hello,
>         
>         I'm trying to use the rohc-compressor in a program I'm using
>         for packet injection. 
>         
>         However I get the following error when i attempt to compile :
>         
>         
>         In file included from headers.h:8,
>                          from packetforwardrohc.c:9:
>         /home/josie/rohc-1.2.0/src/comp/rohc_comp.h:197: warning:
>         ‘struct ip_packet’ declared inside parameter list
>         /home/josie/rohc-1.2.0/src/comp/rohc_comp.h:197: warning: its
>         scope is only this definition or declaration, which is
>         probably not what you want
>         /home/josie/rohc-1.2.0/src/comp/rohc_comp.h:205: warning:
>         ‘struct ip_packet’ declared inside parameter list
>         /home/josie/rohc-1.2.0/src/comp/rohc_comp.h:210: warning:
>         ‘struct ip_packet’ declared inside parameter list
>         /home/josie/rohc-1.2.0/src/comp/rohc_comp.h:279: warning:
>         ‘struct ip_packet’ declared inside parameter list
>         /home/josie/rohc-1.2.0/src/comp/rohc_comp.h:280: warning:
>         ‘struct ip_packet’ declared inside parameter list
>         /home/josie/rohc-1.2.0/src/comp/rohc_comp.h:290: warning:
>         ‘struct ip_packet’ declared inside parameter list
>         In file included from packetforwardrohc.c:9:
>         headers.h:14:1: warning: "ETHER_ADDR_LEN" redefined
>         In file included from /usr/include/libnet.h:57,
>                          from packetforwardrohc.c:8:
>         /usr/include/net/ethernet.h:52:1: warning: this is the
>         location of the previous definition
>         packetforwardrohc.c: In function ‘got_packet’:
>         packetforwardrohc.c:494: warning: passing argument 2 of
>         ‘rohc_compress’ discards qualifiers from pointer target type
>         /usr/lib/gcc/i486-linux-gnu/4.2.4/../../../../lib/crt1.o: In
>         function `_start':
>         (.text+0x18): undefined reference to `main'
>         /tmp/cc2r5eZ0.o: In function `got_packet':
>         packetforwardrohc.c:(.text+0xd38): undefined reference to
>         `rohc_compress'
>         /tmp/cc2r5eZ0.o: In function `main.5994':
>         packetforwardrohc.c:(.text+0xe08): undefined reference to
>         `crc_get_polynom'
>         packetforwardrohc.c:(.text+0xe16): undefined reference to
>         `crc_table_3'
>         packetforwardrohc.c:(.text+0xe1b): undefined reference to
>         `crc_init_table'
>         packetforwardrohc.c:(.text+0xe27): undefined reference to
>         `crc_get_polynom'
>         packetforwardrohc.c:(.text+0xe35): undefined reference to
>         `crc_table_7'
>         packetforwardrohc.c:(.text+0xe3a): undefined reference to
>         `crc_init_table'
>         packetforwardrohc.c:(.text+0xe46): undefined reference to
>         `crc_get_polynom'
>         packetforwardrohc.c:(.text+0xe54): undefined reference to
>         `crc_table_8'
>         packetforwardrohc.c:(.text+0xe59): undefined reference to
>         `crc_init_table'
>         packetforwardrohc.c:(.text+0xe7d): undefined reference to
>         `rohc_alloc_compressor'
>         packetforwardrohc.c:(.text+0xffa): undefined reference to
>         `rohc_activate_profile'
>         packetforwardrohc.c:(.text+0x1010): undefined reference to
>         `rohc_activate_profile'
>         packetforwardrohc.c:(.text+0x1026): undefined reference to
>         `rohc_activate_profile'
>         packetforwardrohc.c:(.text+0x103c): undefined reference to
>         `rohc_activate_profile'
>         packetforwardrohc.c:(.text+0x1052): undefined reference to
>         `rohc_activate_profile'
>         packetforwardrohc.c:(.text+0x121f): undefined reference to
>         `rohc_alloc_compressor'
>         packetforwardrohc.c:(.text+0x13a1): undefined reference to
>         `rohc_free_compressor'
>         collect2: ld returned 1 exit status
>         
>         
>         Could you tell me what I might be doing wrong? Attached is the
>         sample code.
>         
>         Would really appreciate your feedback, thanks.
>         
>         Regards,
>         Josephine
>         
>         
>         
>         
>         
> 
> _______________________________________________
> Mailing list: https://launchpad.net/~rohc
> Post to     : rohc@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~rohc
> More help   : https://help.launchpad.net/ListHelp




Follow ups

References