xmlrpc-c conifig doesn't behave as I read the docs.

Jim <[email protected]> Wed, 16 Jul 2008 09:52:31 -0400
Newsgroups gmane.text.xml.rpc.specification
Message-ID <[email protected]>
I started to write a server but I couldn't get my code to link, so I 
created a small test case by copying the  xmlrpc_sample_add_server.cpp 
file from the examples/cpp directory and modified the make file given at 
http://xmlrpc-c.sourceforge.net/doc/xmlrpc-c-config.html.

This is what I ended up with:


root@devel test]# cat Makefile
INCLUDES = $(shell $(XMLRPC_C_CONFIG) c++2 abyss-server --cflags)

LDADD = $(shell $(XMLRPC_C_CONFIG) abyss-server c++2 --ldadd)
all: xmlrpc_sample_add_server

xmlrpc_sample_add_server.o:
        g++ -c $(INCLUDES) xmlrpc_sample_add_server.cpp

xmlrpc_sample_add_server: xmlrpc_sample_add_server.o
        g++ -o xmlrpc_sample_add_server $(LDADD) xmlrpc_sample_add_server.o

And this is the output (truncated for brevity, you get the picture)

[root@devel test]# make
g++ -c -I/usr/local/include  xmlrpc_sample_add_server.cpp
g++ -o xmlrpc_sample_add_server -L/usr/local/lib  -lxmlrpc_client 
-lxmlrpc_server -lxmlrpc_server_abyss -lxmlrpc_cpp -lxmlrpc_server_abyss 
-lxmlrpc_server -lxmlrpc_abyss  -lpthread -lxmlrpc -lxmlrpc_util 
-lxmlrpc_xmlparse -lxmlrpc_xmltok xmlrpc_sample_add_server.o
xmlrpc_sample_add_server.o(.text+0x122): In function `main':
: undefined reference to `xmlrpc_c::registry::registry()'
xmlrpc_sample_add_server.o(.text+0x18c): In function `main':
: undefined reference to `xmlrpc_c::methodPtr::methodPtr(xmlrpc_c::method*)'
xmlrpc_sample_add_server.o(.text+0x1dd): In function `main':
: undefined reference to 
`xmlrpc_c::registry::addMethod(std::basic_string<char, 
std::char_traits<char>, std::allocator<char> >, xmlrpc_c::methodPtr)'
xmlrpc_sample_add_server.o(.text+0x2f5): In function `main':
: undefined reference to 
`xmlrpc_c::serverAbyss::serverAbyss(xmlrpc_c::registry const&, unsigned 
int, std::basic_string<char, std::char_traits<char>, 
std::allocator<char> > const&, unsigned int, unsigned int, unsigned int, 
bool, bool, int)'
xmlrpc_sample_add_server.o(.text+0x390): In function `main':
: undefined reference to `xmlrpc_c::serverAbyss::run()'

What have I done wrong?

I even stuck a $(LDADD) at the end of the link line to see if things 
were in the wrong order, but that didn't help.

The libraries seem to be there:

[root@devel test]# ls -l /usr/local/lib/libxmlrpc*
-rw-r--r--  1 root root 843384 Jul 16 09:09 /usr/local/lib/libxmlrpc++.a
lrwxrwxrwx  1 root root     16 Jul 16 09:09 
/usr/local/lib/libxmlrpc++.so -> libxmlrpc++.so.3
lrwxrwxrwx  1 root root     19 Jul 16 09:09 
/usr/local/lib/libxmlrpc++.so.3 -> libxmlrpc++.so.3.06
-rwxr-xr-x  1 root root 673729 Jul 16 09:09 
/usr/local/lib/libxmlrpc++.so.3.06
-rw-r--r--  1 root root 212108 Jul 16 09:09 /usr/local/lib/libxmlrpc.a
-rwxr-xr-x  1 root root    728 Jul 16 09:09 /usr/local/lib/libxmlrpc.la
lrwxrwxrwx  1 root root     19 Jul 16 09:09 /usr/local/lib/libxmlrpc.so 
-> libxmlrpc.so.3.6.15
lrwxrwxrwx  1 root root     19 Jul 16 09:09 
/usr/local/lib/libxmlrpc.so.3 -> libxmlrpc.so.3.6.15
-rwxr-xr-x  1 root root 145178 Jul 16 09:09 
/usr/local/lib/libxmlrpc.so.3.6.15
-rwxr-xr-x  1 root root 145210 Jul 16 08:44 
/usr/local/lib/libxmlrpc.so.3.6.4
-rw-r--r--  1 root root 291094 Jul 16 09:09 /usr/local/lib/libxmlrpc_abyss.a
-rwxr-xr-x  1 root root    692 Jul 16 09:09 
/usr/local/lib/libxmlrpc_abyss.la
lrwxrwxrwx  1 root root     25 Jul 16 09:09 
/usr/local/lib/libxmlrpc_abyss.so -> libxmlrpc_abyss.so.3.6.15
lrwxrwxrwx  1 root root     25 Jul 16 09:09 
/usr/local/lib/libxmlrpc_abyss.so.3 -> libxmlrpc_abyss.so.3.6.15
-rwxr-xr-x  1 root root 205528 Jul 16 09:09 
/usr/local/lib/libxmlrpc_abyss.so.3.6.15
-rwxr-xr-x  1 root root 204154 Jul 16 08:44 
/usr/local/lib/libxmlrpc_abyss.so.3.6.4
(partial listing)

Thanks,
Jim.

------------------------------------

Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/xml-rpc/

<*> Your email settings:
    Individual Email | Traditional

<*> To change settings online go to:
    http://groups.yahoo.com/group/xml-rpc/join
    (Yahoo! ID required)

<*> To change settings via email:
    mailto:[email protected] 
    mailto:[email protected]

<*> To unsubscribe from this group, send an email to:
    [email protected]

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/