Hello,
I have task to make a program that multiplies polynomials as client(input/output indexes)-server(multiplying) using RPC. However when I try to compile it with gcc it gives the next info:
for client:
Udefined first
symbol referenced
Clnt_create client.o
for server:
Udefined first
symbol referenced
mlt_proc_1 mlt_svc.o
What could be done with it?(Some libs problems(?), mb missing some include files?)
here the listings:
mlt.x
Code:
struct mlt_in { /* входные данные (аргумент) */
int f[20];
int g[20];
};
struct mlt_out { /* возвращаемые данные (результат) */
int d[40];
};
program MLT_PROG {
version MLT_VERS {
mlt_out MLTPROC(mlt_in) = 1; /* номер процедуры = 1 */
} = 1;
} = 0x31230000;
Keep in mind that include files don't include libraries -- they only tell the compiler what functions ought to exist. So no matter how many include files you add, that will never resolve "undefined external" errors. "unresolved external" means more than one .c or .o file was required to completely build one executable, because they were using parts of each other -- or a library was missing.
You shouldn't be using raw gcc to build your RPC programs. There are many source files, some which need to be compiled together, some which shouldn't, and which belongs where kind of depends on what your RPC generator generated.
Usually you'd do this:
Code:
# Convert your template into code you can fill out.
# It also builds a makefile for you, which knows how to build your server
# and client programs.
rpcgen -a -C mlt.x
vim mlt_server.c # Edit your own code into mlt_server.c
vim mlt_client.c # Edit your own code into mlt_client.c
make -f Makefile.mlt mlt_client mlt_server
When I do that, I get:
Code:
$ make -f Makefile.mlt mlt_server mlt_client
make[1]: Entering directory `/home/username/code/c/1shot/rpc'
cc -g -c -o mlt_svc.o mlt_svc.c
cc -g -c -o mlt_server.o mlt_server.c
cc -g -c -o mlt_xdr.o mlt_xdr.c
cc -g -o mlt_servermlt_svc.o mlt_server.o mlt_xdr.o -lnsl
cc -g -c -o mlt_clnt.o mlt_clnt.c
cc -g -c -o mlt_client.o mlt_client.c
cc -g -o mlt_clientmlt_clnt.o mlt_client.o mlt_xdr.o -lnsl
make[1]: Leaving directory `/home/username/code/c/1shot/rpc'
$
So mlt_server needs mlt_svc.c, mlt_server.c, and mlt_xdr.c all at the same time.
And mlt_client needs mlt_clnt.c, mlt_client.c, and mlt_xdr.c all at the same time.
They also both need -lnsl.
---------- Post updated at 11:17 AM ---------- Previous update was at 11:13 AM ----------
Having done all of this, I finally see what the error is.
You should not be declaring clnt_create, by the way. That's a library function. I'm guessing you did so to get around 'undeclared function' warnings, but the real problem wasn't that it was undeclared, but that it didn't exist at all...
Hi,
We just built a new Solaris 10 zone. And would like to add it to our DNS server. Its also Solaris 10. Please let me know how can I get the IP resolved using this DNS server. I added entry into zone config file but not working. I did restarted the DNS services. And also added nameserver name... (5 Replies)
Hello,
I was having few issues on my linux box, I am getting this error whenever I tried to mount a share on a client linux host.
# mount -t nfs 10.10.4.150:/data/pops_sva /mnt
mount: mount to NFS server '10.10.4.150' failed: RPC Error: Program not registered.
#
I see the error and I... (4 Replies)
Hi folks,
I am attempting to setup a Solaris 10 syslog server to receive logs from linux machines. Here's what I did:
On the server (SunOS sun226 5.10), IP address: 192.168.212.226:
1. start syslogdby issuing $/usr/sbin/syslogd -T
On a client (SunOS sun221 5.8):
1. Configured... (1 Reply)
C: Rpcbind failure - RPC: Timed out error (solaris)
hello an nfs server on my sun fire v440 is not responding , i get the error bellow and lots of my networking services are not reponding, please helppppp its an emergency
RPC: Rpcbind failure - RPC: Timed out
i also get
NFS server... (2 Replies)
Problem
- Linux Client/Server Socket Application: Preventing Client from quitting on server crash
Hi,
I am writing a Linux socket Server and Client using TCP protocol on Ubuntu 9.04 x64.
I am having problem trying to implement a scenario where the client should keep running even when the... (2 Replies)
Hi,
my problem is that I am not able to grand the nfs directory on a Fedora 7 server to a standard solaris client.
I always got the messages no permission.
Important: No change on the client (Solaris) is possible! So I am not able to change the NFS Version on the client side to force the... (3 Replies)
Hi,
I am trying to create a CLIENT handle in RPC on Solaris. I am calling the following function
CLIENT *clnt = clnt_create(host, prognum, versnum, nettype);
However If I call this in main it seems to work but if I call this function in any other function it fails with a segmentation... (1 Reply)