• Advertisement
Sign in to follow this  

QMake and SFML linking under windows

This topic is 1934 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hi guys

I tried to link to the SFML library with a QTCreator project under windows. And it didn't work.
QTCreator doesn't allow me to select .dll files, the wizard only accepts .lib.

So this is what i did:

  • I downloaded SFML 1.6 for MinGW and put it in the project folder under /lib.
  • I have MinGW installed and selected it as my compiler/builder in the project settings.
  • I tried building the program with both writing down the relative path to the dll, and by using -L(path to /lib) -lmylib... with the first one, it said it didn't find sfml-window.dll, with the second one, it didn't find sfml-graphics.dll when trying to run the exe.

    I am guessing, i am doing something very simple very wrong. Here are the relevant files:

    project file
    [SPOILER]


    TEMPLATE = app
    CONFIG += console
    CONFIG += debug_and_release
    #QT += opengl
    SOURCES += main.cpp \
    sources/nestedtest/myclass.cpp
    HEADERS += \
    sources/nestedtest/myclass.h
    win32-g++ {
    CONFIG(release, debug) {
    TARGET = tryout_release
    } else {
    TARGET = tryout_debug
    }
    INCLUDEPATH += $$PWD/lib/SFML-1.6/include
    DEPENDPATH += $$PWD/lib/SFML-1.6/include
    LIBS += -L$$PWD/lib/SFML-1.6/lib/ -lsfml-graphics -lsfml-window -lsfml-audio -lsfml-system
    #LIBS += $$PWD/lib/SFML-1.6/lib/sfml-graphics.dll
    #LIBS += $$PWD/lib/SFML-1.6/lib/sfml-window.dll
    #LIBS += $$PWD/lib/SFML-1.6/lib/sfml-audio.dll
    #LIBS += $$PWD/lib/SFML-1.6/lib/sfml-system.dll
    }

    [/SPOILER]

    main.cpp
    [SPOILER]

    #include <iostream>
    #include <SFML/Graphics.hpp>
    #include <QDebug>
    using namespace std;
    // Creates the RenderWindow with a size of 800*600 and 32 bits colordepth as
    // a global variable
    sf::RenderWindow App(sf::VideoMode(800, 600, 32), "Jump & Run Tutorial");
    // The event that we use to catch the closing of the game
    sf::Event Event;
    bool init() {
    // return that initialization was successful
    return true;
    }
    void update() {
    // look for events
    while (App.GetEvent(Event))
    {
    // if the user did close the window (by pressing the x button of the
    // window, e.g.), close the game
    if (Event.Type == sf::Event::Closed) {
    App.Close();
    }
    }
    }
    void draw() {
    // Clear the graphics window
    App.Clear();
    // Everything that needs to be drawn will be here later
    // Actualize the display
    App.Display();
    // Look the the console window to see this output
    //qDebug()<<"Just to see qDebug in action.";
    }
    int main()
    {
    bool initSuccess=init();
    // if an error occured during init() close the game
    if (!initSuccess){
    App.Close();
    }
    // gameloop till game is closed
    while (App.IsOpened())
    {
    update();
    draw();
    }
    return EXIT_SUCCESS;
    }

    [/SPOILER]

Share this post


Link to post
Share on other sites
Advertisement
I don't use visual studio, I use MinGW. There are no .lib files (all i've found about those suggested they are proprietary VS libraries).

I read the instructions, I can compile and link samples via GCC, but I want to do it with QMake. I haven't found a satisfying tutorial for QMake, the only thing I've found was to put the dlls in the windows system folder, which i would like to avoid.

E:The strange thing is i can compile, the linker too finishes without an error. I am guessing the exe doesn't know where to find the dll's. Edited by Bluefirehawk

Share this post


Link to post
Share on other sites
In that case, you just have to copy the DDL in your .exe folder? Or make sure the startup directory is the one containing the DDL?

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement