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

QtCreator - working with third party libraries best practices [multi-platform]



  • I'm relatively new to C++ so maybe that's the problem. Basically, I am working a small purpose-built media player and I'd like to use http://taglib.github.io/ to get at the metadata of all my media files, and as time goes on I'm pretty certain I'll want to use other libraries as well for various things.

    I am currently developing on windows (my target audience) but I chose Qt specifically so that I can support multiple platforms.

    So initially, I had just unzipped taglib, added the root source folder to my INCLUDEPATH in my pro file. While this allows the IDE to find all the header files, it won't compile as the compiler complains that it cna't find them.

    So what is the best practice here, especially knowing that I will want to compile the same project in several different environments?

    thanks in advance,
    --alex



  • How did the compiler complain exaclty, and what's in your .pro file?


  • Lifetime Qt Champion

    Hi and welcome to devnet,

    From what you wrote you are probably not linking to the taglib dll.

    As for best practice, it depends. Essentially use scope in the pro file to distinguishes which platforms does what.



  • hello, here is a pastebin of my pro file:

    http://pastebin.com/Xm9tJra6

    The error I get is during compile time, that it can't find the header files that are in the include path.

    However, in the IDE itself, I am able to autocomplete those very same header files.


  • Lifetime Qt Champion

    First thing to do: either use double backslashes or change them to the unix notation with forward slashes (better solution)

    Then, you're not linking to taglib

    You need to add

    @
    LIBS +=
    -LC:/Users/v0idnull/Documents/Code/c++/libs/taglib-1.9.1/taglib-1.9.1/taglib/folder_where_the_lib_file_can_be_found
    -ltaglib
    @

    to your pro file





  • thank you. I suppose this is what I was missing all along. I must compile libs first, and not just try to include them as source.


Log in to reply