Проблема с включением внешней библиотеки при компиляции программы на C ++ - PullRequest
0 голосов
/ 26 сентября 2011

Я использую Dev C ++ для Windows 7 и WinPcap (пакет разработчика). Dev c ++, по-видимому, не может найти pcap.h, хотя я включаю каталог / include / в параметры проекта, при компиляции он выдает ошибку «pcap.h: нет такого файла или каталога». (наряду со многими другими ошибками). Вот мой код:

#include <stdlib.h>
#include <stdio.h>
#include <pcap.h>

int main(int argc, char **argv)
{
pcap_t *fp;
char errbuf[PCAP_ERRBUF_SIZE];
u_char packet[100];

    return 0;
}

Я держал это простым. Первоначально я работал в Visual Studio (C ++), но для распространения кода, скомпилированного с помощью Visual C ++, в целевой системе должна быть установлена ​​библиотека Microsoft C Runtime. Я просто хочу иметь возможность распространять конечный исполняемый файл и заставить его работать на любой машине.

Я проверил командную строку, переданную компилятору. У была опция -I [путь]. Ну, есть что-то, что мне не хватает?

В качестве примечания: я скомпилировал приведенный выше код с помощью g ++ (из установочного каталога dev c ++), и он скомпилирован правильно. Но когда я попытался связать его, исполнимый файл произвел сбой при запуске.

1 Ответ

1 голос
/ 26 сентября 2011

Ваш вопрос немного неясен, но ваша дополнительная информация звучит так, как будто вы можете скомпилировать это (т. Е. Заголовок pcap.h был найден), и ваши проблемы связаны со ссылками.

Чтобы добавить каталоги в путь поиска библиотек, используйте -LPATH, где PATH - фактический каталог, содержащий libpcap. Чтобы действительно добавить его к ссылке, используйте -lpcap в вызове компоновщика, например,

$ g++ -o main -LPATH main.o -lpcap
...