Форум программистов, компьютерный форум CyberForum.ru

Не подключается сторонняя библиотека - C++

Восстановить пароль Регистрация
 
StalkerSmerch
1 / 1 / 2
Регистрация: 04.03.2012
Сообщений: 159
31.05.2013, 23:10     Не подключается сторонняя библиотека #1
Раньше всё работало, но с сегодняшнего дня перестало. При подключении библиотеке winpcap Выдаёт следующие ошибки:
main.obj:-1: ошибка: LNK2019: ссылка на неразрешенный внешний символ pcap_open_live в функции main
main.obj:-1: ошибка: LNK2019: ссылка на неразрешенный внешний символ pcap_close в функции main
main.obj:-1: ошибка: LNK2019: ссылка на неразрешенный внешний символ pcap_loop в функции main
main.obj:-1: ошибка: LNK2019: ссылка на неразрешенный внешний символ pcap_findalldevs в функции main
main.obj:-1: ошибка: LNK2019: ссылка на неразрешенный внешний символ pcap_freealldevs в функции main

Код для компиляции использую такой:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
#ifdef _MSC_VER
/*
 * we do not want the warnings about the old deprecated and unsecure CRT functions
 * since these examples can be compiled under *nix as well
 */
#define _CRT_SECURE_NO_WARNINGS
#endif
 
#include <pcap.h>
 
/* prototype of the packet handler */
void packet_handler(u_char *param, const struct pcap_pkthdr *header, const u_char *pkt_data);
 
int main()
{
    pcap_if_t *alldevs;
    pcap_if_t *d;
    int inum;
    int i=0;
    pcap_t *adhandle;
    char errbuf[PCAP_ERRBUF_SIZE];
 
    /* Retrieve the device list */
    if(pcap_findalldevs(&alldevs, errbuf) == -1)
    {
        fprintf(stderr,"Error in pcap_findalldevs: %s\n", errbuf);
        exit(1);
    }
 
    /* Print the list */
    for(d=alldevs; d; d=d->next)
    {
        printf("%d. %s", ++i, d->name);
        if (d->description)
            printf(" (%s)\n", d->description);
        else
            printf(" (No description available)\n");
    }
 
    if(i==0)
    {
        printf("\nNo interfaces found! Make sure WinPcap is installed.\n");
        return -1;
    }
 
    printf("Enter the interface number (1-%d):",i);
    scanf("%d", &inum);
 
    if(inum < 1 || inum > i)
    {
        printf("\nInterface number out of range.\n");
        /* Free the device list */
        pcap_freealldevs(alldevs);
        return -1;
    }
 
    /* Jump to the selected adapter */
    for(d=alldevs, i=0; i< inum-1 ;d=d->next, i++);
 
    /* Open the device */
    /* Open the adapter */
    if ((adhandle= pcap_open_live(d->name,  // name of the device
                             65536,         // portion of the packet to capture.
                                            // 65536 grants that the whole packet will be captured on all the MACs.
                             1,             // promiscuous mode (nonzero means promiscuous)
                             1000,          // read timeout
                             errbuf         // error buffer
                             )) == NULL)
    {
        fprintf(stderr,"\nUnable to open the adapter. %s is not supported by WinPcap\n", d->name);
        /* Free the device list */
        pcap_freealldevs(alldevs);
        return -1;
    }
 
    printf("\nlistening on %s...\n", d->description);
 
    /* At this point, we don't need any more the device list. Free it */
    pcap_freealldevs(alldevs);
 
    /* start the capture */
    pcap_loop(adhandle, 0, packet_handler, NULL);
 
    pcap_close(adhandle);
    return 0;
}
 
 
/* Callback function invoked by libpcap for every incoming packet */
void packet_handler(u_char *param, const struct pcap_pkthdr *header, const u_char *pkt_data)
{
    struct tm *ltime;
    char timestr[16];
    time_t local_tv_sec;
 
    /*
     * unused parameters
     */
    (VOID)(param);
    (VOID)(pkt_data);
 
    /* convert the timestamp to readable format */
    local_tv_sec = header->ts.tv_sec;
    ltime=localtime(&local_tv_sec);
    strftime( timestr, sizeof timestr, "%H:%M:%S", ltime);
 
    printf("%s,%.6d len:%d\n", timestr, header->ts.tv_usec, header->len);
 
}
Очень прошу, помогите. Заранее спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.05.2013, 23:10     Не подключается сторонняя библиотека
Посмотрите здесь:

не подключается библиотека C++
Не подключается <string> C++
C++ Не подключается хедер
C++ Не подключается graphics.h в Visual Studio
C++ Не подключается <graphics.h>
C++ Не подключается stringstream в проект
C++ Не подключается файл
C++ Не подключается библиотека

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DU
1477 / 1053 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
31.05.2013, 23:32     Не подключается сторонняя библиотека #2
я так понял это студийный проект. в свойствах проекта в опциях линкера посмотрите как подлючаются библиотеки (*.lib файлы). там уже должны быть всякие win32.lib или что-то такое. нужно рядом прописать lib файл от pcap.
StalkerSmerch
1 / 1 / 2
Регистрация: 04.03.2012
Сообщений: 159
31.05.2013, 23:44  [ТС]     Не подключается сторонняя библиотека #3
Спасибо, помогло.
Я сильно тупанул, в конце не поставил ; при объявлении либов)

DU, а не знаете как подключать библиотеке в qt creator?
Yandex
Объявления
31.05.2013, 23:44     Не подключается сторонняя библиотека
Ответ Создать тему
Опции темы

Текущее время: 05:21. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru