Solved

how to use rpcgen

Posted on 2008-10-16
7
2,176 Views
Last Modified: 2012-08-14
Hi,

I am trying to follow a tutorial on using rpcgen. I am new to the C language so I'm just trying to follow exactly as the tutorial says. Please see http://www.cs.cf.ac.uk/Dave/C/node34.html

When I get up to "cc msg_proc.c msg_svc.c -o msg_server -lnsl " i get the following error:

msg_proc.c:11: error: conflicting types for printmessage_1
msg.h:22: error: previous declaration of printmessage_1 was here

Can anybody tell me what I might be doing wrong? I have copied the code exactly from the website.

If its relevant I am using Ubuntu 8.04

Thanks,
Michael
0
Comment
Question by:mstrelan
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 4
  • 2
7 Comments
 
LVL 45

Expert Comment

by:sunnycoder
ID: 22728783
Message simply means that you have two declaration of function printmessage_1 and both have different types.
If you check line number 11 in file msg_proc.c and line number 22 in msg.h you would see the two types. You need to resolve the error by using either one of those.

I have not looked through the entire page but I could not locate a msg.h on a quick scan. If you wrote that file, then  you might want to change the declaration in the msg.h file to match the definition in the .c file.
0
 
LVL 53

Expert Comment

by:Infinity08
ID: 22728790
In msg_proc.c, the function's signature is this :

        int * printmessage_1(char **msg, struct svc_req *req)

Check the msg.h file (on the indicated line 22) to see if the function's signature is exactly the same there.
0
 
LVL 53

Expert Comment

by:Infinity08
ID: 22728792
>> but I could not locate a msg.h on a quick scan.

msg.h is generated by rpcgen.
0
Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
LVL 53

Expert Comment

by:Infinity08
ID: 22728807
If the above doesn't solve your problem, then you need to check for a typo you might have made in msg_proc.c (in the function's signature more specifically), and you should post your msg.x file.
0
 
LVL 10

Author Comment

by:mstrelan
ID: 22728840
thanks for your quick responses... msg.h is auto generated so I probably shouldn't be touching it. here is what I've got...
/* msg.h line 22: */
extern  int * printmessage_1(char **, CLIENT *);
 
 
/* msg_proc.c line 11: */
int * printmessage_1(char **msg, struct svc_req *req)
 
{

Open in new window

0
 
LVL 53

Accepted Solution

by:
Infinity08 earned 500 total points
ID: 22728865
Depending on the platform, you might have to change the function name to printmessage_1_svc in the msg_proc.c file, so :

        int * printmessage_1_svc(char **msg, struct svc_req *req)
0
 
LVL 45

Expert Comment

by:sunnycoder
ID: 22728919
what is the definition for CLIENT ? Can it be mapped to struct svc_req? If no then renaming the function in .c is the only option as I08 already said. Also if you need the declaration of the function in msg_proc.c file in some other source file, then you will have to include it using another manually generated .h file.
0

Featured Post

Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
UPD maximums on Red Hat 6 130
Unable to start eclipse ? 17 177
Raspberry Pi 3 to send text message 9 248
maximize the sum of fractions 33 76
Summary: This tutorial covers some basics of pointer, pointer arithmetic and function pointer. What is a pointer: A pointer is a variable which holds an address. This address might be address of another variable/address of devices/address of fu…
Windows programmers of the C/C++ variety, how many of you realise that since Window 9x Microsoft has been lying to you about what constitutes Unicode (http://en.wikipedia.org/wiki/Unicode)? They will have you believe that Unicode requires you to use…
The goal of this video is to provide viewers with basic examples to understand and use structures in the C programming language.
The goal of this video is to provide viewers with basic examples to understand opening and reading files in the C programming language.

710 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question