0

我正在尝试为 VICI 编写自己的应用程序,这是 strongswan 应用程序的某种接口(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 应用程序,那就太好了。

谢谢!

4

1 回答 1

1

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

这对我有用:

gcc -L/usr/lib/ipsec -lvici myapp.c
于 2016-02-08T17:06:00.343 回答