链接到VICI库的头文件

时间:2016-02-07 09:37:02

标签: c vici

我正在尝试编写一个自己的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.a
gcc myapp.c -L/usr/lib/ipsec

但是和上面一样的错误。

如果有人能告诉我如何正确包含/链接头文件以便我可以使用VICI应用程序,那将是非常好的。

谢谢!

1 个答案:

答案 0 :(得分:0)

我终于找到了解决问题的方法。上面的命令几乎是正确的,但是gcc的参数顺序不是。

这对我有用:

gcc -L/usr/lib/ipsec -lvici myapp.c