Я относительно новичок в программировании на C ++, и хотя у меня есть некоторый опыт в общих методах кодирования, соглашениях и т. Д. … Недавно я оказался на грани своих (ограниченных) знаний.
По сути, я хочу написать программу, которая позволит мне извлекать аннотации из файла PDF. В результате некоторых исследований я обнаружил, что библиотека Попплера позволит мне сделать это. Поэтому я скачал его и начал трудный процесс его сборки для CodeBlocks (MinGW) в Windows Vista.
Для тех, кто заинтересован, следующий сайт предоставил бесценную информацию о строительстве Poppler с Cmake:
http://www.seppemagiels.com/blog/building-poppler-windows-using-mingw>
Во всяком случае, на мою нынешнюю дилемму. Следуя соглашениям Cmake об исходных текстах, у меня есть такая структура файлов:
…\Работа\
…………..Poppler-0.22.2
…………..Poppler-0.22.2_Build
В папке «poppler-0.22.2_Build» находится файл «libpoppler.dll.a», который, как мне кажется, является папкой библиотеки. Затем я следовал инструкциям, как описано здесь:
http://www.learncpp.com/cpp-tutorial/a3-using-libraries-with-codeblocks/
Затем я связался с файлом libpoppler.dll.a в каталоге «poppler-0.22.2_Build» и файлами .h, которые находились в исходном каталоге с исходным кодом (т.е. poppler-0.22.2).
Теперь мой вопрос: что мне нужно написать в моем main.cpp, чтобы я мог использовать функциональность Poppler? Сначала я просто написал:
#include "poppler.h"
Однако это вернулось с ошибкой «Нет такого файла или каталога».
Тогда я попробовал:
#include "poppler-qt4.h"
Затем это было выполнено, однако позже в моем коде мне сообщили, что «poppler» не был объявлен.
Тогда я попробовал:
#include "poppler-qt4.h"#include "C:\Users\...\poppler-0.22.2\cpp\poppler-document.h"
Который затем возвратил «неопределенную ссылку на»чертенок_ZN7poppler8document14load_from_fileERKsS2_S2_ ‘»ошибка …
Так что вот где я сейчас нахожусь, я абсолютно не знаю, как мне продолжать, и я надеялся, что кто-нибудь может помочь мне пройти через шаги, которые мне нужно предпринять, чтобы заставить Попплера работать, т.е. как я могу заставить библиотеку связываться, если это действительно проблема, или как мне преодолетьчертенок_ «ошибка. Я действительно нахожусь в своем уме с этой проблемой …
Заранее спасибо за любую помощь, которую вы можете предоставить.
Постскриптум Мой main.cpp пока что:
#include <iostream>
//#include "poppler.h"#include "poppler-qt4.h"#include "C:\Users\...\poppler-0.22.2\cpp\poppler-document.h"
using namespace std;
int main()
{
const string dir = "C:\\Users\\...\\TestPDF.pdf";
poppler::document *doc = poppler::document::load_from_file(dir)
return 0;
}
В Code :: Blocks щелкните правой кнопкой мыши имя вашего проекта и выберите «Параметры сборки …». Выберите параметр в крайнем левом меню, в котором указано название вашего проекта (должно быть первым) и нажмите «Настройки компоновщика». Теперь нажмите кнопку «Добавить» и перейдите к файлу DLL, затем нажмите «ОК».
Чтобы разрешить включение заголовочных файлов вашей библиотеки (без записи полного пути в исходном коде), вы должны указать добавить их местоположение к пути включения компилятора. Вы можете сделать это на вкладке «Поиск каталогов» в том же окне. Убедитесь, что выбрана вложенная вкладка «Компилятор» и нажмите «Добавить». Перейдите в каталог, содержащий заголовочные файлы, и нажмите «ОК».
Надеюсь это поможет.
Других решений пока нет …