how to fix " Missing argument to '-L' " error ?
-
@Ahti said in how to fix " Missing argument to '-L' " error ?:
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();
etcThe 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. -
@Ahti said in how to fix " Missing argument to '-L' " error ?:
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. -
@Ahti said in how to fix " Missing argument to '-L' " error ?:
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. -
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 +=
-
@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.
-
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?
-
@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>
-
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.
-
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.
-
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 :
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: