c - 编译xmlrpc-c程序的问题

标签 c linux xml-rpc

我正在尝试 xmlrpc-c 文档中的示例:

#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源码.c

没什么特别的,我得到: /tmp/ccfGuc6A.o:在函数 sample_add' 中: source.c:(.text+0x38): undefined reference xmlrpc_decompose_value' source.c:(.text+0x6d): 对 xmlrpc_build_value' 的 undefined reference /tmp/ccfGuc6A.o: 在函数中main': source.c:(.text+0x96): 未定义对 xmlrpc_env_init 的引用 source.c:(.text+0xa5): undefined reference xmlrpc_registry_new' source.c:(.text+0xd8): 未定义对 xmlrpc_registry_add_method 的引用' source.c:(.text+0x117): undefined reference xmlrpc_server_abyss' collect2:错误:ld 返回 1 退出状态

这些功能存在于: /usr/include/xmlrpc-c/base.h 我已经提到:

包括

我认为我没有将正确的选项传递给链接,但我不知道它是如何完成的。

谢谢

最佳答案

您绝对没有为链接器传递正确的参数。仅包含一个头文件实际上并不能使链接器与库链接,您需要使用 -l (小写 L)选项告诉链接器您需要链接哪些库,喜欢

gcc source.c -lxmlrpc

关于c - 编译xmlrpc-c程序的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34117154/

相关文章:

c - 将 C 文件中的符号导入链接描述文件

c - proc-fs - 多个文件的单一回调函数

c - 二进制算法 C 编程

c - c中的结构对象名称指针

linux - 如何拆分文件并为同一文件中的文件分配名称

c - extern char **environ 的定义在哪里?

c# - 使用 XML-RPC.NET 在 Windows 7 中降低 XML-RPC 速度

java:没有网络服务器的基本网络服务接口(interface)

linux - 为vim安装Vundle插件时如何配置插件?

php - WordPress 多站点(启用网络)