2016-02-07 2 views
0

Я пытаюсь программка собственную заявку на Vici, который является своего рода интерфейс для приложения strongswan (https://www.strongswan.org/apidoc/md_src_libcharon_plugins_vici_README.html)Связывание с заголовочного файла библиотеки VICI

Там существует пример, как построить простой 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.

Спасибо!

ответ

0

Наконец-то я нашел решение моей проблемы. Команда выше почти правильная, но порядок аргументов gcc не является.

Это работает для меня:

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