how to fix " Missing argument to '-L' " error ?



  • Hi

    I was working on a project in qt but suddenly it generated a strange error saying :

    error: missing argument to '-L'

    what is that ? and how should i fix it ?

    please help.
    thanks



  • Could you show your .pro file?
    What exactly do you mean by "suddenly"? Did a restart, update occur between the working and non-working state?



  • @JohanSolo

    #-------------------------------------------------
    #
    # Project created by Ahtisham 2016-08-16T13:18:59
    #
    #-------------------------------------------------
    
    QT       += core gui
    
    greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
    
    TARGET = testMyProject
    TEMPLATE = app
    
    
    SOURCES += main.cpp\
           eyecare.cpp \
       others.cpp
    
    HEADERS  += eyecare.h \
       others.h
    
    FORMS    += eyecare.ui
    
    RESOURCES += \
       images.qrc
    
    
    win32:CONFIG(release,debug|release): LIBS += -L&&PWD/Dll/ -ldxva2
    win32:CONFIG(release,debug|release): LIBS += -L$$PWD/Library/ -ldxva2
    else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/Library/ -ldxva2
    else:unix: LIBS += -L$$PWD/Library/ -ldxva2
    
    INCLUDEPATH += $$PWD/Library
    DEPENDPATH += $$PWD/Library
    
    win32:CONFIG(release, debug|release): LIBS += -L$$PWD/Library/ -luser32
    else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/Library/ -luser32
    else:unix: LIBS += -L$$PWD/Library/ -luser32
    
    INCLUDEPATH += $$PWD/Library
    DEPENDPATH += $$PWD/Library
    
    DISTFILES +=
    

    no neither restart nor update occurred but i don't know what caused this problem it was working fine.


  • Moderators

    If you lucky you can clean (or even delete) the target folder)
    Then run qmake + build.

    Did you change any folders or library names?

    Do you use a version system? Then you can compare the differences?


  • Moderators

    @Ahti said in how to fix " Missing argument to '-L' " error ?:

    @JohanSolo

    #-------------------------------------------------
    #
    # Project created by Ahtisham 2016-08-16T13:18:59
    #
    #-------------------------------------------------
    
    QT       += core gui
    
    greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
    
    TARGET = testMyProject
    TEMPLATE = app
    
    
    SOURCES += main.cpp\
           eyecare.cpp \
       others.cpp
    
    HEADERS  += eyecare.h \
       others.h
    
    FORMS    += eyecare.ui
    
    RESOURCES += \
       images.qrc
    
    
    win32:CONFIG(release,debug|release): LIBS += -L&&PWD/Dll/ -ldxva2
    win32:CONFIG(release,debug|release): LIBS += -L$$PWD/Library/ -ldxva2
    else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/Library/ -ldxva2
    else:unix: LIBS += -L$$PWD/Library/ -ldxva2
    
    INCLUDEPATH += $$PWD/Library
    DEPENDPATH += $$PWD/Library
    
    win32:CONFIG(release, debug|release): LIBS += -L$$PWD/Library/ -luser32
    else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/Library/ -luser32
    else:unix: LIBS += -L$$PWD/Library/ -luser32
    
    INCLUDEPATH += $$PWD/Library
    DEPENDPATH += $$PWD/Library
    
    DISTFILES +=
    

    no neither restart nor update occurred but i don't know what caused this problem it was working fine.

    In here shall be probably a '$' sign

    win32:CONFIG(release,debug|release): LIBS += -L&&PWD/Dll/ -ldxva2
    

    change to

    win32:CONFIG(release,debug|release): LIBS += -L$$PWD/Dll/ -ldxva2
    


  • @koahnig

    Now i get these errors:

    https://ibb.co/eE4GiQ

    :(



  • After doing what @Eddy said the app started to work :)


  • Moderators

    @Ahti

    Good deal!



  • @Eddy lol it still gives those 3 errors :(


  • Moderators

    Good to see it's funny to you ;-)

    Can you edit the link to you image or just copy the text here? We cannot see the image in your previous post.
    You can use an image provider to show it to us by following this topic
    There is still a problem with the uploading of image in the Qt forum. The admins are working on it though.

    Edit : did you check the hint from @koahnig ?



  • @Eddy see i edited the post

    changing from && to $$ ? yes i did that but now i am gettings those errors

    note the problem is with those Dll files i know it because when i delete them and run my project it works.


  • Moderators

    why do you have those 2 lines?

    win32:CONFIG(release,debug|release): LIBS += -L$$PWD/Dll/ -ldxva2
    win32:CONFIG(release,debug|release): LIBS += -L$$PWD/Library/ -ldxva2
    

    Is one of them not enough?
    The Dll path seems redundant since you don't use it further on



  • @Eddy

    Okay removed everything except :

    win32:CONFIG(release,debug|release): LIBS += -L$$PWD/Dll/ -ldxva2
    

    but still getting those 3 errors

    I use that Dll file for getting some windows functions that i need in my project.
    functions like :
    GetDesktopWindow();
    MonitorFromWIndow();
    GetCurrentBrightness();
    etc


  • Moderators

    what is in your $$PWD/Dll/ folder?


  • Moderators

    @Ahti said in how to fix " Missing argument to '-L' " error ?:

    @Eddy

    Okay removed everything except :

    win32:CONFIG(release,debug|release): LIBS += -L$$PWD/Dll/ -ldxva2
    

    but still getting those 3 errors

    I use that Dll file for getting some windows functions that i need in my project.
    functions like :
    GetDesktopWindow();
    MonitorFromWIndow();
    GetCurrentBrightness();
    etc

    The problem ist that this is only working for release. Therefore, you need to be sure that you are in release mode.
    Also sometimes it is good to rerun qmake and possibly rebuild your libraries.



  • @Eddy

    3 windows dll files

    dxva2.dll, dxva264.dll and user32.dll


  • Moderators

    @Ahti said in how to fix " Missing argument to '-L' " error ?:

    @Eddy

    3 windows dll files

    dxva2.dll, dxva264.dll and user32.dll

    no libs with those file names?
    The dlls are used during run time, but while linking you need to have the libs created together with the dlls there.



  • @koahnig

    now i got the libs but still getting that error :(


  • Moderators

    @Ahti said in how to fix " Missing argument to '-L' " error ?:

    @koahnig

    now i got the libs but still getting that error :(

    What is the actual error message with your current configuration?
    Probably it would be good also to post the current .pro file.



  • @koahnig

    those three errors that i already mentioned.

    my new pro file:

    #-------------------------------------------------
    #
    # Project created by Ahtisham 2016-08-16T13:18:59
    #
    #-------------------------------------------------
    
    QT       += core gui
    
    greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
    
    TARGET = testMyProject
    TEMPLATE = app
    
    
    SOURCES += main.cpp\
            eyecare.cpp \
        others.cpp
    
    HEADERS  += eyecare.h \
        others.h
    
    FORMS    += eyecare.ui
    
    RESOURCES += \
        images.qrc
    
    
    win32:CONFIG(release,debug|release): LIBS += -L$$PWD/Dll/ -ldxva2
    win32:CONFIG(release,debug|release): LIBS += -L$$PWD/Library/ -ldxva2
    else:win32:CONFIG(debug,debug|release): LIBS += -L$$PWD/Library/ -ldxva2
    else:unix: LIBS += -L$$PWD/Library/ -ldxva2
    
    INCLUDEPATH += $$PWD/Library
    DEPENDPATH += $$PWD/Library
    
    win32:CONFIG(release, debug|release): LIBS += -L$$PWD/Library/ -luser32
    else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/Library/ -luser32
    else:unix: LIBS += -L$$PWD/Library/ -luser32
    
    INCLUDEPATH += $$PWD/Library
    DEPENDPATH += $$PWD/Library
    
    DISTFILES +=
    
    

  • Moderators

    @Ahti

    Which means that the stubs in the lib-file are missing?
    Do you have the import and export keyword handled correctly?

    The dll and the stub-lib are generâted with the same tool chain?



  • @koahnig what do you mean by "stubs in the lib-file" what is that ? i don't know anything about that. I just copied all the required dll and lib files from the system32 to Dll and Library folders of my project respectively. And what is import and export keyword ?

    I am creating this app just to let user change screen brightness and for that i need to use windows API and that is why i need those dll and lib files.

    have a look:

    https://msdn.microsoft.com/en-us/library/windows/desktop/dd692939(v=vs.85).aspx

    goto the link and see at the end in "Requirements" heading it clearly mentions which library and dll files you need to include in order to use that specific windows api function.


  • Moderators

    @Ahti

    When creating a dll you will also create a library (it may have .lib as extension or .a depending on compiler). You need to link the library to your application which is using your dll. The library contains basically a reduced, short part (stub as the rest of tree when you have cut it down) .

    dllimport and dllexport it is called for MS compilers. An inpedendent way is with Q_DECL_IMPORT and Q_DECL_EXPORT

    What compiler are you using for creating your application?




  • Moderators

    @Ahti

    From where did you get the include file HighLevelMonitorConfigurationAPI.h ?



  • @koahnig I didn't get it from anywhere i just included it and qt responded on its own by mentioning it in the suggestion list. write this in your qt creator and it will give you a header file with this suggestion:

    #include <highlevelmonitorconfigurationapi.h>
    

  • Moderators

    @Ahti

    I got it. Never used it.

    You are using a MinGW-C++ Gnu-compiler together with a MS library and dll.
    I think in general this should be possible as long as the keywords are set properly which I would assume for this header file which is apparently part of MinGW.

    Once again, please post the error output as to be found in your output pane. They may hold a clue of the problem.

    BTW MS compilers are typically not compatible between its different version and certainly not with MinGW in general.



  • @koahnig

    Here is the error output:
    0_1498227345255_eyecare.h - testMyProject - Qt Creator 23-06-2017 19_44_39.png


  • Moderators

    @Ahti

    Need to copy and paste the content of the "Compile Output" pane. This is only a comprehesive summary telling almost nothing.

    In the Compile Output pane you have the complete messages from the compile and linker. Typically you have black and blue fonts. When you have errors it starts at certain point to output with red font. There is typically the interesting part.

    Not sure if I can see anything, but it is the next best option.

    Mark the text where the problem starts plus a couple of lines before and after and with copy and paste post it here as source code. This shold be enough.



  • @koahnig

    Compile Output:

    0_1498238168735_library error.JPG


  • Moderators

    @Ahti

    Sorry, this goes beyond my experience.
    This is poking about in the fog. Possibly the wrong version of library, but I do not know.

    You probably need to checkout the information around for MinGW.



  • @koahnig

    I have an old copy of my project in my desktop and that old copy works perfectly fine. so what i did is that i just took that old copy and replaced the codes in it with the new code of my new project and ran that old project and this is what i came up with :

    0_1498892783250_win api error.JPG

    I know its the same error which i encountered in my new copy of the project but whenever i got that error i was not able to locate it but with what i just did i was able to locate the source of the problem. so after including all the header files ( which i have missed ) i am still getting the problem. I included the dll as well as lib files as well but getting same error.

    GetDesktopWIndow function requirements:

    0_1498894960070_win api function des.JPG



  • @koahnig

    Look again at the compile output :

    0_1498934912587_main.cpp - test - Qt Creator 02-07-2017 00_16_33.png


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.