Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

PDFhummus error: PDFWriter.h: No such file or directory. I need help to use PDFhummus with QT Creator



  • pdfhummus error: PDFWriter.h: No such file or directory
    Good night guys. I'm trying development a PDF file handler with QT Create and PDFHummus and i have get this error: PDFWriter.h: No such file or directory. I have build PDFHummus source code and add the PDFWriter.lib to my QT project througth: options -> add library -> external libraies. Someone help-me please.

    The same error for the others resources: #include <PDFWriter.h>, #include <PDFPage.h>, #include <PDFWriter.h>, #include <PDFPageInput.h>



  • @ronaldon
    QT Creator is an IDE (editor, debugger). It has nothing to do with the errors you are vaguely reporting. That would be down to whatever compiler/linker you are using. Your errors sound like they are coming from #include statements in your sources. So either your include paths are wrong/unspecified, or the header files are not where you think they are.

    Nobody can give you more information from the description you give without more specifics.



  • I need developer a tool from scratch for handler PDF files with PDF Hummus and QT create. I have build PDFHummus source code and add the PDFWriter.lib to my QT project througth: options -> add library -> external libraies but I have problems describd above. Can you help me?



  • @ronaldon share your .pro



  • @eyllanesc
    This is my .pro:

    QT       += core gui
    
    greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
    
    CONFIG += c++11
    
    # You can make your code fail to compile if it uses deprecated APIs.
    # In order to do so, uncomment the following line.
    #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0
    
    SOURCES += \
        main.cpp \
        pdfwriter1steps.cpp
    
    HEADERS += \
        pdfwriter1steps.h
    
    FORMS += \
        pdfwriter1steps.ui
    
    # Default rules for deployment.
    qnx: target.path = /tmp/$${TARGET}/bin
    else: unix:!android: target.path = /opt/$${TARGET}/bin
    !isEmpty(target.path): INSTALLS += target
    
    win32:CONFIG(release, debug|release): LIBS += -L$$PWD/./ -lPDFWriter
    else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/./ -lPDFWriter
    else:unix: LIBS += -L$$PWD/./ -lPDFWriter
    
    INCLUDEPATH += $$PWD/.
    DEPENDPATH += $$PWD/.
    
    


  • @ronaldon said in PDFhummus error: PDFWriter.h: No such file or directory. I need help to use PDFhummus with QT Creator:

    pdfhummus error: PDFWriter.h: No such file or directory

    The same error for the others resources: #include <PDFWriter.h>, #include <PDFPage.h>, #include <PDFWriter.h>, #include <PDFPageInput.h>

    So where are these header files actually located, and what have you done about making your INCLUDEPATH include the directory so that the compiler can find them? I don't see anything in your .pro for this?



  • @JonB ,
    I have build PDFHummus source code and add the PDFWriter.lib to my QT project througth: options -> add library -> external libraies.



  • @ronaldon
    That seems to have no answer for what I asked you about where the header files are and how you have told the compile process to find them on include path. Repeating that you have built PDFWriter does not advance you any further.



  • @JonB
    I think I understand now, I shouldn't use PDFWriter.lib, instead i should add to my project the PDF Hummus fonts. It is that true?



  • @ronaldon
    No.


  • Lifetime Qt Champion

    @ronaldon said in PDFhummus error: PDFWriter.h: No such file or directory. I need help to use PDFhummus with QT Creator:

    @JonB
    I think I understand now, I shouldn't use PDFWriter.lib, instead i should add to my project the PDF Hummus fonts. It is that true?

    Hi,

    As @JonB requested: where is the header of that library located on your hard drive ?

    That path is missing from your INCLUDEPATH variable.



  • @SGaist
    The header PDFWriter.h is in "D:\WORKSPACE\PDFWriter\PDFWriter" and my project is in "C:\Users\Usuario\Documents\QTProjects\TestPDFhummus"



  • This post is deleted!

  • Lifetime Qt Champion

    Build the library properly and use it rather than trying to do it by hand like you do.



  • @SGaist
    How can i made that? In the begin i try compile and import the files .lib but not work for me.



  • @SGaist
    I receive this error now:

    C:\Users\Usuario\Documents\QTProjects\build-TestPDFhummus-Desktop_Qt_5_15_2_MinGW_64_bit-Debug..\TestPDFhummus\main.cpp:16: error: undefined reference to PDFWriter::PDFWriter()' debug/main.o: In functionqMain(int, char**)':
    C:\Users\Usuario\Documents\QTProjects\build-TestPDFhummus-Desktop_Qt_5_15_2_MinGW_64_bit-Debug/../TestPDFhummus/main.cpp:16: undefined reference to `PDFWriter::PDFWriter()'

    Now, my .pro is:

    QT       += core gui
    
    greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
    
    CONFIG += c++11
    
    # You can make your code fail to compile if it uses deprecated APIs.
    # In order to do so, uncomment the following line.
    #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0
    
    SOURCES += \
        main.cpp \
        testpdfhummus.cpp
    
    HEADERS += \
        testpdfhummus.h
    
    FORMS += \
        testpdfhummus.ui
    
    unix:!macx: LIBS += -L$$PWD/./pdf_hummus/Build/PDFWriter/ -lPDFWriter
    
    INCLUDEPATH += $$PWD/./pdf_hummus/PDFWriter
    DEPENDPATH += $$PWD/./pdf_hummus/PDFWriter
    
    unix:!macx: PRE_TARGETDEPS += $$PWD/./pdf_hummus/Build/PDFWriter/libPDFWriter.a
    
    unix:!macx: LIBS += -L$$PWD/./pdf_hummus/Build/FreeType/ -lFreeType
    
    INCLUDEPATH += $$PWD/./pdf_hummus/FreeType/include
    DEPENDPATH += $$PWD/./pdf_hummus/FreeType/include
    
    unix:!macx: PRE_TARGETDEPS += $$PWD/./pdf_hummus/Build/FreeType/libFreeType.a
    
    unix:!macx: LIBS += -L$$PWD/./pdf_hummus/Build/LibJpeg/ -lLibJpeg
    
    INCLUDEPATH += $$PWD/./pdf_hummus/LibJpeg
    DEPENDPATH += $$PWD/./pdf_hummus/LibJpeg
    
    unix:!macx: PRE_TARGETDEPS += $$PWD/./pdf_hummus/Build/LibJpeg/libLibJpeg.a
    
    unix:!macx: LIBS += -L$$PWD/./pdf_hummus/Build/LibTiff/ -lLibTiff
    
    INCLUDEPATH += $$PWD/./pdf_hummus/LibTiff
    DEPENDPATH += $$PWD/./pdf_hummus/LibTiff
    
    unix:!macx: PRE_TARGETDEPS += $$PWD/./pdf_hummus/Build/LibTiff/libLibTiff.a
    
    unix:!macx: LIBS += -L$$PWD/./pdf_hummus/Build/ZLib/ -lZlib
    
    INCLUDEPATH += $$PWD/./pdf_hummus/ZLib
    DEPENDPATH += $$PWD/./pdf_hummus/ZLib
    
    unix:!macx: PRE_TARGETDEPS += $$PWD/./pdf_hummus/Build/ZLib/libZlib.a
    
    # Default rules for deployment.
    qnx: target.path = /tmp/$${TARGET}/bin
    else: unix:!android: target.path = /opt/$${TARGET}/bin
    !isEmpty(target.path): INSTALLS += target
    
    DISTFILES += \
    


  • @ronaldon

    • Please when pasting globs of code/.pro file like this learn to use the forum's Code tag to enclose the literal stuff and make it readable by others.

    • In the text you show, which line are you claiming is the one your MinGW will use to add the necessary options for linking with your PDFWriter library? (You might also look at the link line generated which causes the error you quote.)



  • @JonB
    I'm sorry for the missing code tag, i made the correction. I don't know what MinGW will use. I started my first QT project theses days, i just need learn how configure the external library for develop my routine.



  • @ronaldon
    It's much better with the code tag! :)

    I'm afarid this is not my area so you'll have to wait for someone else to comment, but: I do not think you are linking against the PDFWriter library.

    unix:!macx: LIBS += -L$$PWD/./pdf_hummus/Build/PDFWriter/ -lPDFWriter
    

    I think you need that line, or similar, for your MinGW. And I assume that line is only applied if you are compiling for unix (and not macx), whereas as you are Windows.



  • This post is deleted!


  • @JonB
    My .pro now:

    QT       += core gui
    
    greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
    
    CONFIG += c++11
    
    # You can make your code fail to compile if it uses deprecated APIs.
    # In order to do so, uncomment the following line.
    #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0
    
    SOURCES += \
        main.cpp \
        testpdfhummus.cpp
    
    HEADERS += \
        testpdfhummus.h
    
    FORMS += \
        testpdfhummus.ui
    
    # Default rules for deployment.
    qnx: target.path = /tmp/$${TARGET}/bin
    else: unix:!android: target.path = /opt/$${TARGET}/bin
    !isEmpty(target.path): INSTALLS += target
    
    #win32:CONFIG(release, debug|release): LIBS += -L$$PWD/pdf_hummus/PDFWriter/release/ -lPDFWriter
    #else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/pdf_hummus/PDFWriter/debug/ -lPDFWriter
    
    #INCLUDEPATH += $$PWD/pdf_hummus/PDFWriter
    #DEPENDPATH += $$PWD/pdf_hummus/PDFWriter
    
    #win32-g++:CONFIG(release, debug|release): PRE_TARGETDEPS += $$PWD/pdf_hummus/PDFWriter/release/libPDFWriter.a
    #else:win32-g++:CONFIG(debug, debug|release): PRE_TARGETDEPS += $$PWD/pdf_hummus/PDFWriter/debug/libPDFWriter.a
    #else:win32:!win32-g++:CONFIG(release, debug|release): PRE_TARGETDEPS += $$PWD/pdf_hummus/PDFWriter/release/PDFWriter.lib
    #else:win32:!win32-g++:CONFIG(debug, debug|release): PRE_TARGETDEPS += $$PWD/pdf_hummus/PDFWriter/debug/PDFWriter.lib
    
    win32:CONFIG(release, debug|release): LIBS += -L$$PWD/pdf_hummus/PDFWriter/release/ -lPDFWriter
    else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/pdf_hummus/PDFWriter/debug/ -lPDFWriter
    else:macx: LIBS += -L$$PWD/pdf_hummus/PDFWriter/ -lPDFWriter
    
    INCLUDEPATH += $$PWD/pdf_hummus/PDFWriter
    DEPENDPATH += $$PWD/pdf_hummus/PDFWriter
    
    win32:CONFIG(release, debug|release): LIBS += -L$$PWD/pdf_hummus/FreeType/release/ -lFreeType
    else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/pdf_hummus/FreeType/debug/ -lFreeType
    else:macx: LIBS += -L$$PWD/pdf_hummus/FreeType/ -lFreeType
    
    INCLUDEPATH += $$PWD/pdf_hummus/FreeType/Release
    DEPENDPATH += $$PWD/pdf_hummus/FreeType/Release
    
    win32:CONFIG(release, debug|release): LIBS += -L$$PWD/pdf_hummus/LibJpeg/release/ -lLibJpeg
    else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/pdf_hummus/LibJpeg/debug/ -lLibJpeg
    else:macx: LIBS += -L$$PWD/pdf_hummus/LibJpeg/ -lLibJpeg
    
    INCLUDEPATH += $$PWD/pdf_hummus/LibJpeg/Release
    DEPENDPATH += $$PWD/pdf_hummus/LibJpeg/Release
    
    win32:CONFIG(release, debug|release): LIBS += -L$$PWD/pdf_hummus/LibTiff/release/ -lLibTiff
    else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/pdf_hummus/LibTiff/debug/ -lLibTiff
    else:macx: LIBS += -L$$PWD/pdf_hummus/LibTiff/ -lLibTiff
    
    INCLUDEPATH += $$PWD/pdf_hummus/LibTiff/Release
    DEPENDPATH += $$PWD/pdf_hummus/LibTiff/Release
    
    win32:CONFIG(release, debug|release): LIBS += -L$$PWD/pdf_hummus/ZLib/release/ -lZlib
    else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/pdf_hummus/ZLib/debug/ -lZlib
    else:macx: LIBS += -L$$PWD/pdf_hummus/ZLib/ -lZlib
    
    INCLUDEPATH += $$PWD/pdf_hummus/ZLib/Release
    DEPENDPATH += $$PWD/pdf_hummus/ZLib/Release
    
    

    And the image of error:
    alt text



  • @ronaldon
    I would start by looking at the actual linker command line being executed during the build. All you show is the errors, without showing the command line.



  • @JonB
    This is my compile output:

    19:35:50: Running steps for project TestPDFhummus...
    19:35:50: Configuration unchanged, skipping qmake step.
    19:35:50: Starting: "C:\Qt\Tools\mingw810_64\bin\mingw32-make.exe" -j6
    C:/Qt/Tools/mingw810_64/bin/mingw32-make -f Makefile.Debug
    mingw32-make[1]: Entering directory 'C:/Users/Usuario/Documents/QTProjects/build-TestPDFhummus-Desktop_Qt_5_15_2_MinGW_64_bit-Debug'
    g++ -c -fno-keep-inline-dllexport -g -std=gnu++11 -Wall -Wextra -Wextra -fexceptions -mthreads -DUNICODE -D_UNICODE -DWIN32 -DMINGW_HAS_SECURE_API=1 -DQT_QML_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_NEEDS_QMAIN -I..\TestPDFhummus -I. -I..\TestPDFhummus\pdf_hummus\PDFWriter -I..\TestPDFhummus\pdf_hummus\FreeType\Release -I..\TestPDFhummus\pdf_hummus\LibJpeg\Release -I..\TestPDFhummus\pdf_hummus\LibTiff\Release -I..\TestPDFhummus\pdf_hummus\ZLib\Release -IC:\Qt\5.15.2\mingw81_64\include -IC:\Qt\5.15.2\mingw81_64\include\QtWidgets -IC:\Qt\5.15.2\mingw81_64\include\QtGui -IC:\Qt\5.15.2\mingw81_64\include\QtANGLE -IC:\Qt\5.15.2\mingw81_64\include\QtCore -Idebug -I. -I/include -IC:\Qt\5.15.2\mingw81_64\mkspecs\win32-g++  -o debug\main.o ..\TestPDFhummus\main.cpp
    g++ -Wl,-subsystem,windows -mthreads -o debug\TestPDFhummus.exe debug/main.o debug/testpdfhummus.o debug/moc_testpdfhummus.o  -L"C:\Users\Usuario\Documents\QTProjects\TestPDFhummus\pdf_hummus\PDFWriter\debug\PDFWriter.lib" -lPDFWriter -L"C:\Users\Usuario\Documents\QTProjects\TestPDFhummus\pdf_hummus\FreeType\debug" -lFreeType -L"C:\Users\Usuario\Documents\QTProjects\TestPDFhummus\pdf_hummus\LibJpeg\debug" -lLibJpeg -L"C:\Users\Usuario\Documents\QTProjects\TestPDFhummus\pdf_hummus\LibTiff\debug" -lLibTiff -L"C:\Users\Usuario\Documents\QTProjects\TestPDFhummus\pdf_hummus\ZLib\debug" -lZlib C:\Qt\5.15.2\mingw81_64\lib\libQt5Widgets.a C:\Qt\5.15.2\mingw81_64\lib\libQt5Gui.a C:\Qt\5.15.2\mingw81_64\lib\libQt5Core.a  -lmingw32 C:\Qt\5.15.2\mingw81_64\lib\libqtmain.a -LC:\openssl\lib -LC:\Utils\my_sql\mysql-5.7.25-winx64\lib -LC:\Utils\postgresql\pgsql\lib -lshell32 
    C:/Qt/Tools/mingw810_64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -lPDFWriter
    collect2.exe: error: ld returned 1 exit status
    mingw32-make[1]: *** [Makefile.Debug:72: debug/TestPDFhummus.exe] Error 1
    mingw32-make: *** [Makefile:45: debug] Error 2
    mingw32-make[1]: Leaving directory 'C:/Users/Usuario/Documents/QTProjects/build-TestPDFhummus-Desktop_Qt_5_15_2_MinGW_64_bit-Debug'
    19:35:57: The process "C:\Qt\Tools\mingw810_64\bin\mingw32-make.exe" exited with code 2.
    Error while building/deploying project TestPDFhummus (kit: Desktop Qt 5.15.2 MinGW 64-bit)
    When executing step "Make"
    19:35:57: Elapsed time: 00:06.
    


  • @ronaldon said in PDFhummus error: PDFWriter.h: No such file or directory. I need help to use PDFhummus with QT Creator:

    -L"C:\Users\Ronaldo Fernandes\Documents\QTProjects\TestPDFhummus\pdf_hummus\PDFWriter\debug\PDFWriter.lib" -lPDFWriter
    
    ld.exe: cannot find -lPDFWriter
    

    There is something wrong here. You have debug\PDFWriter.lib at the end of the -L argument. That is a file, and that is wrong. It should be a directory where -lPDFWriter is to find the PDFWriter library file.

    Compare against what else you have in the llinker line, like

    -L"C:\Users\Ronaldo Fernandes\Documents\QTProjects\TestPDFhummus\pdf_hummus\FreeType\debug" -lFreeType
    

    See how that -L only names the debug directory for the -lFreeType to search for it? That's how it should be.

    Additional to that you have PDFWriter.lib mentioned. But (so far as I know) .lib files are only used as library files for the MSVC compiler. You are using MinGW, its libraries should only be .a files, I believe.

    Go look at how the path ending in debug\PDFWriter.lib is being generated, and correct. And make sure what you have for PDFWriter is for MinGW, not for MSVC.



  • @JonB, Is there a possibility of having a version of the Hummus PDF for MinGW, or do I have to somehow change the output of the compilation to the ".a" file? The PDF project Hummus was developed in the visual studio as far as I could see. What I need is to compile it and add it to my QT Creator project.



  • @ronaldon
    You cannot link mixing compilers.

    MinGW produces .a libraries. MSVC produces .lib libraries. You need to pick one of the two compilers and compile both your own code and third-party code with the same compiler toolchain.


Log in to reply