On Sat, Apr 20, 2013 at 08:20:42PM +0200, Christopher Icely wrote: > Good Day All, > > Firstly, I do apologize if this is the incorrect forum in which to ask my > questions however, I'm really at my wit's end with this problem and I was > hoping one of you could perhaps help me. > > Basically I wish to write code that will allow me to extract annotations > from PDFs. However, I'm yet to write any code as I've spent an inordinate > amount of time in just getting Poppler built. These are the steps I've > followed so far: > > {System specs: Windows 7, MinGW, CodeBlocks} > > 1) I have a folder structure like so: > C:\Users\Chris\Documents\Poppler\build\ > ------------------------->poppler-0.22.2 > ------------------------->poppler-0.22.2_Build > > The file "poppler-0.22.2" is the unzipped source files while the > "poppler-0.22.2_Build" file was made by the Cmake GUI with Cairo, JPEG, QT4 > and TIFF included. Furthermore, Cmake was instructed to generate a > "CodeBlocks - MinGW Makefiles". > > 2) After the CodeBlocks project was generated by Cmake, the project was > built in CodeBlocks and I was left with the following: > > C:\Users\Chris\Documents\Poppler\build\poppler-0.22.2_Build\ > -------------------------->CMakeFiles > -------------------------->cpp > -------------------------->poppler > -------------------------->qt4 > -------------------------->test > -------------------------->utils > -------------------------->cmake_install.cmake > -------------------------->CMakeCache > -------------------------->config.h > -------------------------->CTestfile.cmake > -------------------------->libpoppler.dll > -------------------------->libpoppler.dll.a > -------------------------->Makefile > -------------------------->poppler.cbp > -------------------------->poppler.layout > > 3) Now i need to link the poppler library to my project. Therefore in > CodeBlocks I did the following: > > a)Settings->Compiler->Linker settings: Link libraries > and I set the path to: > C:\Users\Chris\Documents\Poppler\build\poppler-0.22.2_Build\libpoppler.dll.a > > b)Then in Settings->Compiler->Search directories->Linker > I set the path to: > C:\Users\Chris\Documents\Poppler\build\poppler-0.22.2_Build\ > > c)Then I set up the linking for my project: > Project->Build Options->Linker settings > and set the path to > C:\Users\Chris\Documents\Poppler\build\poppler-0.22.2_Build\libpoppler.dll.a > > d)And finally: > Project->Build Options->Search directories->Linker > and add the path: > C:\Users\Chris\Documents\Poppler\build\poppler-0.22.2_Build\ > > 4) I have now written the following code in my main.cpp just to see if > everything works: > > 1 : #include <iostream> > 2 : #include > "C:\Users\Chris\Documents\Poppler\build\poppler-0.22.2\cpp\poppler-global.h" > 3 : #include > "C:\Users\Chris\Documents\Poppler\build\poppler-0.22.2\cpp\poppler-document.h" > 4 : > 5 : using namespace std; > 6 : > 7 : int main() > 8 : { > 9 : > 10: > 11: const string dir = > "C:\\Users\\Chris\\Documents\\WorkForDad\\2013\\Pdf Automation\\Anotation > Extraction\\Remuneration Report.pdf"; > 12: > 13: poppler::document *doc = poppler::document::load_from_file(dir); > 14: > 15: return 0; > 16: } > > However, I get the following error in my"Build messages" when I build the > code: > > > C:\Users\Chris\Documents\WorkForDad\2013\Pdf > Automation\Test\Clean\main.cpp||In function 'int main()':| > C:\Users\Chris\Documents\WorkForDad\2013\Pdf > Automation\Test\Clean\main.cpp|13|warning: unused variable 'doc' > [-Wunused-variable]| > obj\Debug\main.o||In function `main':| > C:\Users\Chris\Documents\WorkForDad\2013\Pdf > Automation\Test\Clean\main.cpp|13|undefined reference to > `_imp___ZN7poppler8document14load_from_fileERKSsS2_S2_'| > ||=== Build finished: 1 errors, 1 warnings (0 minutes, 1 seconds) ===| > > > ### > > > And in the "Build log" I get the following: > > > -------------- Clean: Debug in Clean (compiler: GNU GCC > Compiler)--------------- > > Cleaned "Clean - Debug" > > -------------- Build: Debug in Clean (compiler: GNU GCC > Compiler)--------------- > > mingw32-g++.exe -Wall -fexceptions -g -g -c > "C:\Users\Chris\Documents\WorkForDad\2013\Pdf > Automation\Test\Clean\main.cpp" -o obj\Debug\main.o > C:\Users\Chris\Documents\WorkForDad\2013\Pdf > Automation\Test\Clean\main.cpp: In function 'int main()': > C:\Users\Chris\Documents\WorkForDad\2013\Pdf > Automation\Test\Clean\main.cpp:13:24: warning: unused variable 'doc' > [-Wunused-variable] > mingw32-g++.exe -L..\..\..\..\..\Poppler\build\poppler-0.22.2_Build > -LC:\Users\Chris\Documents\Poppler\build\poppler-0.22.2_Build -o > bin\Debug\Clean.exe obj\Debug\main.o > ..\..\..\..\..\Poppler\build\poppler-0.22.2_Build\libpoppler.dll.a > C:\Users\Chris\Documents\Poppler\build\poppler-0.22.2_Build\libpoppler.dll.a > > obj\Debug\main.o: In function `main': > C:/Users/Chris/Documents/WorkForDad/2013/Pdf > Automation/Test/Clean/main.cpp:13: *undefined reference to > `_imp___ZN7poppler8document14load_from_fileERKSsS2_S2_'* > collect2.exe: error: ld returned 1 exit status > Process terminated with status 1 (0 minutes, 1 seconds) > 1 errors, 1 warnings (0 minutes, 1 seconds) > > > > ### > > > So as you can see, the problem would seem to be a linking error of some > sort due to the presence of : "undefined reference to > `_imp___ZN7poppler8document14load_from_fileERKSsS2_S2_'" > > Also, I have no idea what the "_imp__" + (random characters) means. From > some research I've discovered that this "_imp__" problem has something to > do with C to C++ code conversion however I have no idea if this is the case > now or how I would go out about fixing this problem. > > So there it all is, I hope someone can help me and I really appreciate all > of you who took the time to read the above and for any assistance you can > provide me. > > Kind Regards > Chris
I'm not too familiar with Code::Blocks or compiling on Windows, but I do know that poppler has separate frontends for C++, qt, and glib. If you are using the C++ frontend, you should be linking to the libpoppler-cpp library. I suppose on Windows the file would be named cpp\libpoppler-cpp.dll.a. _______________________________________________ poppler mailing list poppler@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/poppler