我正在尝试编写一个自己的VICI应用程序,这是一个强大的应用程序的接口 (https://www.strongswan.org/apidoc/md_src_libcharon_plugins_vici_README.html)
存在一个如何构建简单VICI客户端的示例:
#include <stdio.h>
#include <errno.h>
#include <string.h>
#include <libvici.h>
int main(int argc, char *argv[])
{
vici_conn_t *conn;
int ret = 0;
vici_init();
conn = vici_connect(NULL);
if (conn)
{
/* do stuff */
vici_disconnect(conn);
}
else
{
ret = errno;
fprintf(stderr, "connecting failed: %s\n", strerror(errno));
}
vici_deinit();
return ret;
}
到目前为止,我尝试了很多方法来使用gcc正确构建此应用程序,但每次我都会收到错误,因为缺少头文件,或者存在未定义的引用等等。我找不到成功的方法。 头文件libvici.h位于文件夹/ folder1 / folder2中,所以我尝试通过gcc链接到它:
gcc myapp.c -L/folder1/folder2
但我得到一个未定义的引用错误'vici_init'(这是VICI应用程序中的一个函数)
我还尝试通过
链接到库文件/usr/lib/ipsec/libvici.agcc myapp.c -L/usr/lib/ipsec
但是和上面一样的错误。
如果有人能告诉我如何正确包含/链接头文件以便我可以使用VICI应用程序,那将是非常好的。
谢谢!
答案 0 :(得分:0)
我终于找到了解决问题的方法。上面的命令几乎是正确的,但是gcc的参数顺序不是。
这对我有用:
gcc -L/usr/lib/ipsec -lvici myapp.c