xmlrpc in C Server Beispiel geht nicht

ascawath

Mitglied
Moin moin,

ich habe versucht mittels C einen xmlrpc Server "aufzusetzen". Dazu habe ich den BeispielCode aus der Dokumentation genommen:
PHP:
#include <xmlrpc.h>
#include <xmlrpc_server.h>
#include <xmlrpc_server_abyss.h>

static xmlrpc_value *
sample_add(xmlrpc_env *   const envP,
           xmlrpc_value * const paramArrayP,
           void *         const serverContext) {

    xmlrpc_int32 x, y, z;

    /* Parse our argument array. */
    xmlrpc_parse_value(envP, paramArrayP, "(ii)", &x, &y);
    if (envP->fault_occurred)
        return NULL;

    /* Add our two numbers. */
    z = x + y;

    /* Return our result. */
    return xmlrpc_build_value(envP, "i", z);
}



int
main (int           const argc,
      const char ** const argv) {

    xmlrpc_server_abyss_parms serverparm;
    xmlrpc_registry * registryP;
    xmlrpc_env env;

    xmlrpc_env_init(&env);

    registryP = xmlrpc_registry_new(&env);

    xmlrpc_registry_add_method(
        &env, registryP, NULL, "sample.add", &sample_add, NULL);

    serverparm.config_file_name = argv[1];
    serverparm.registryP = registryP;

    printf("Starting XML-RPC server...\n");

    xmlrpc_server_abyss(&env, &serverparm, XMLRPC_APSIZE(registryP));

    return 0;
}

Allerdings bekomme ich beim Kompilieren immer Fehlermeldungen:
Code:
xmlrpc.c:(.text+0x3a): Nicht definierter Verweis auf `xmlrpc_parse_value'
xmlrpc.c:(.text+0x6b): Nicht definierter Verweis auf `xmlrpc_build_value'
/home/roboter/Roboter/xmlrpc.o: In Funktion `main':
xmlrpc.c:(.text+0xb4): Nicht definierter Verweis auf `xmlrpc_env_init'
xmlrpc.c:(.text+0xc3): Nicht definierter Verweis auf `xmlrpc_registry_new'
xmlrpc.c:(.text+0xe6): Nicht definierter Verweis auf `xmlrpc_registry_add_method'
xmlrpc.c:(.text+0x11a): Nicht definierter Verweis auf `xmlrpc_server_abyss'
collect2: error: ld returned 1 exit status
Process terminated with status 1 (0 minute(s), 1 second(s))
6 error(s), 2 warning(s) (0 minute(s), 1 second(s))

Habt ihr vielleicht eine Idee, woran das liegen könnte?

Ich benutze Linux Ubuntu 15.10 und CodeBlocks als IDE.

MfG Ascawath
 
Zuletzt bearbeitet:
Ich habe einen Fehler gefunden...
Wenn ich die libxmlrpc-c noch einmal manuell entpacke und versuche mittels ./configure make make install zu installieren, dann sagt der explizit, dass er den XML Client nicht installiert.
Der Grund dafür sei der fehlende CURL CLient und libwww Client.
Beim Versuch den libwww zu installieren, traten auch wieder nur Fehler auf.
Ich habe in der Zwischenzeit das Bestriebssystem komplett neu aufgesetzt, mit der aktuellsten Version.
 
Nach der NeuAufestzung habe ich die Pakete libxmlrpc-core-c3, libxmlrpc-core-c3-dev, libxmlrpc-c++4 und libxmlrpc-c++4-dev mittels apt-get installiert.
Ergebnis ist immer noch das selbe. Die Fehler treten dennoch bei der Kompilierung auf...
Hat jemand einen Rat?
 
Zurück