2015-12-06 2 views
1

Я пытаюсь из примеров, приведенных в документации XMLRPC-с:проблемы компиляции XMLRPC-с программой

#include <stdio.h> 
#include <xmlrpc.h> 
#include <xmlrpc_server.h> 
//#include <xmlrpc_server_abyss.h> 
#include <xmlrpc_abyss.h> 
#include <xmlrpc-c/base.h> 
#include <xmlrpc-c/util.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_decompose_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; 
} 

Я пытаюсь скомпилировать с помощью GCC: GCC source.c

nohting фантазии и я получить: /tmp/ccfGuc6A.o: в функции sample_add': source.c:(.text+0x38): undefined reference to xmlrpc_decompose_value» source.c :(текст + 0x6d). неопределенная ссылка на xmlrpc_build_value' /tmp/ccfGuc6A.o: In function главного:. source.c :(текст + 0x96): неопределенная ссылка на xmlrpc_env_init' source.c:(.text+0xa5): undefined reference to xmlrpc_registry_new ' . Source.c :(текст + 0xd8): неопределенная ссылка на xmlrpc_registry_add_method' source.c:(.text+0x117): undefined reference to xmlrpc_server_abyss' collect2: ошибка: л.д. возвращается статус 1 выхода

эти функции существуют в: /usr/include/xmlrpc-c/base.h whihc я ссылка:

включают

Я думаю, что я не передавая правильные варианты ссылки, я не знаю, как это делается, хотя.

спасибо

ответ

1

Я считаю, что xml-rpc-c поставляется со вспомогательной программой, которая поможет вам правильно получить ссылку. Его документированы

http://xmlrpc-c.sourceforge.net/doc/xmlrpc-c-config.html

+0

совершенны, что решил все мои связывающие probleems, спасибо за вашу помощь –

2

Вы определенно не передадите правильный аргумент для компоновщика. Просто в том числе заголовочный файл на самом деле не сделать ссылку компоновщика с библиотекой, вы должны использовать -l (нижний регистр L) возможность сообщить компоновщику, какие библиотеки необходимо связать с, как

gcc source.c -lxmlrpc 
Смежные вопросы