我很尴尬地问这个,但是我无法将我的小型演示程序链接到xmlrpc-c libs。我知道这应该是显而易见的,但我很难过。
如果我通过apt(Debian)安装库或者从源代码构建/安装(Debian或macOS),我会遇到同样的问题。
xmlrpc.c:(.text+0x86): undefined reference to `xmlrpc_client_setup_global_const'
xmlrpc.c:(.text+0xba): undefined reference to `xmlrpc_client_create'
xmlrpc.c:(.text+0xf9): undefined reference to `xmlrpc_client_call2f'
xmlrpc.c:(.text+0x166): undefined reference to `xmlrpc_client_destroy'
xmlrpc.c:(.text+0x16b): undefined reference to `xmlrpc_client_teardown_global_const'
我用来编译链接的命令是
gcc $(xmlrpc-c-config --libs --cflags client) xmlrpc.c
xmlrpc-c-config
的输出
-L/usr/lib/x86_64-linux-gnu -lxmlrpc -lxmlrpc_xmlparse -lxmlrpc_xmltok -lxmlrpc_util
-I/usr/include
这一切看起来都不错,图书馆也在预期的位置。
我尝试过在命令行重复库名称的传统方法,例如
gcc $(xmlrpc-c-config --cflags client) xmlrpc.c $(xmlrpc-c-config --libs client) $(xmlrpc-c-config --libs client)
但这没有效果。我还查看了Why does the order in which libraries are linked sometimes cause errors in GCC?中的答案,但这似乎没有解决任何问题。
我不知道下一步该尝试什么(我已经用Google搜索了所有我值得,但无济于事)