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

Я использую 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++), и он скомпилировался правильно. Но когда я попытался связать его, созданный исполняемый файл просто разбился при запуске.


person Rushil Paul    schedule 26.09.2011    source источник
comment
Вы также включили папки /lib или /bin в параметры своего проекта? Обычно они указываются как папка библиотеки или как-то связаны с компоновщиком. Если вы не компилируете из исходного кода, вам потребуются библиотеки разработки (например, для VS файлы .lib для исходного кода этой библиотеки).   -  person Breakthrough    schedule 26.09.2011
comment
Да, это я тоже включил. Библиотека дир. и Включить реж. в опциях проекта. Но по-прежнему не удается найти заголовочный файл.   -  person Rushil Paul    schedule 26.09.2011
comment
вы используете файлы библиотеки Visual Studio или файлы библиотеки MinGW/Cygwin?   -  person Breakthrough    schedule 26.09.2011
comment
МинГВт. Я хочу оставаться как можно дальше от Visual Studio.   -  person Rushil Paul    schedule 26.09.2011


Ответы (1)


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

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

$ g++ -o main -LPATH main.o -lpcap
person Benjamin Bannier    schedule 26.09.2011
comment
@Employed: я исправил это, я приписываю эту ошибку с повреждением мозга слишком долгому использованию систем сборки (чему я рад - часть использования). - person Benjamin Bannier; 27.09.2011