LINK1104: "D:\Windows.obj" file not found while building a simple opencv project.
-
Hey guys,
i have been trying to build a simple image reading script using opencv from the tutorial given on the Qt wiki page after adding all the files and libraries in my .pro file i get this linker error.
My .pro file looks like this#------------------------------------------------- # # Project created by QtCreator 2019-02-06T19:10:21 # #------------------------------------------------- QT += core gui greaterThan(QT_MAJOR_VERSION, 4): QT += widgets TARGET = Test1 TEMPLATE = app # The following define makes your compiler emit warnings if you use # any feature of Qt which has been marked as deprecated (the exact warnings # depend on your compiler). Please consult the documentation of the # deprecated API in order to know how to port your code away from it. DEFINES += QT_DEPRECATED_WARNINGS # You can also make your code fail to compile if you use deprecated APIs. # In order to do so, uncomment the following line. # You can also select to disable deprecated APIs only up to a certain version of Qt. #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 CONFIG += c++11 SOURCES += main.cpp \ mainwindow.cpp HEADERS += mainwindow.h FORMS += mainwindow.ui INCLUDEPATH += D:\OpenCV\opencv\build\include #INCLUDEPATH += D:\OpenCV\opencv\build\install\x64\vc15\bin INCLUDEPATH += "D:\Windows Kits\10\Include\10.0.17763.0\ucrt" INCLUDEPATH += "D:\Windows Kits\10\Include\10.0.17763.0\ucrt\sys" LIBS += D:\Windows Kits\10\Lib\10.0.17763.0\um\x64\shell32.lib LIBS += D:\OpenCV\opencv\build\bin\Release\opencv_core400.dll LIBS += D:\OpenCV\opencv\build\bin\Release\opencv_highgui400.dll LIBS += D:\OpenCV\opencv\build\bin\Release\opencv_imgcodecs400.dll LIBS += D:\OpenCV\opencv\build\bin\Release\opencv_imgproc400.dll LIBS += D:\OpenCV\opencv\build\bin\Release\opencv_features2d400.dll LIBS += D:\OpenCV\opencv\build\bin\Release\opencv_calib3d400.dll # Default rules for deployment. #qnx: target.path = /tmp/$${TARGET}/bin #else: unix:!android: target.path = /opt/$${TARGET}/bin #!isEmpty(target.path): INSTALLS += target --------------------------------------------------------------------------------------------------------------------------
and my mainwindow.cpp
#include "mainwindow.h" #include "ui_mainwindow.h" #include <opencv2\core\core.hpp> #include <opencv2\highgui\highgui.hpp> MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); // read an image cv::Mat image = cv::imread("C:\\Users\\somup\\OneDrive\\Desktop\1.jpg", 1); // create image window named "My Image" cv::namedWindow("My Image"); // show the image on window cv::imshow("My Image", image); } MainWindow::~MainWindow() { delete ui; } -----------------------------------------------------------------------------------------------------------
the compiler i am running is Qt 5.12.0 msvc2017 x64 with the default debugger from windows
Can you please help me with this
please
thank you[koahing:code tags added]
-
Hi and welcome to devnet forum
What happens with a simple project without opencv?
FYI as noted above I have added code tags to your post.
Please use code tags for marking code snippets and log output. Code tags are introduced by the "</>" above your post window. -
@Somesh-Singh
additionally to what @koahnig said, can you show us theCompile Output
tab instead of theIssues
tab, that should have more information, about what is going wrong. -
Hi,
You seem to have both a CMakelist.txt file and a .pro file. Which are you using to build your project ?
-
@koahnig
Without opencv it builds fine..
like the example files given by the qt builds without any problem.
I am not sure if the environment is not set as required or i am not including some paths.
can you please help me with this. -
I missed on thing: you don't link against .dll files, you link against .lib files, you should start by fixing that.
-
As already written, fix the LIBS statement to link against the OpenCV libraries properly.
You can use Qt Creator add library feature for that.
-
Does it happen when you try to link against the HighGui library ?
-
Do you mean, you have that problem when you link any of the OpenCV libraries ?
-
@SGaist Yes
I tried using MingW compiler and it works fine with the building of the CmakeLists.txt file and i get the required output.
its just the compiler MSVC15 2017 x64 that i s not able to build the project.
Even with the Cmake it does not run as intended. -
On Windows, you can't mix and match C++ libraries built with different compilers. The only exception currently is VS2017 being backward compatible with VS2015.
-
@SGaist
So why am i getting the error for the ".obj" file not found
As shown in the example that i posted..its just configured to be used with Qt 5.12.0MSVC2017 x64
So why does it not work.i was just trying different ways to make it work with a different compiler to check the integrity of my program .
-
You should compare the Makefile generated by your CMake project and the one from the .pro file
-
@Somesh-Singh said in LINK1104: "D:\Windows.obj" file not found while building a simple opencv project.:
So why am i getting the error for the ".obj" file not found
@SGaist said in LINK1104: "D:\Windows.obj" file not found while building a simple opencv project.:
On Windows, you can't mix and match C++ libraries built with different compilers. The only exception currently is VS2017 being backward compatible with VS2015.
Let's go back a step. Firstly your
LIBS
variable is incorrect. Secondly you're linking system libraries which from the code example it seems you shouldn't. And thirdly, if a set of libraries worked withmingw
then they were compiled withmingw
(hence the quote from @SGaist). That set of libraries can not, and shall not be used with msvc, ever. You need a set of libraries compiled with msvc to use them in an application built with msvc. This also extends to the msvc version - for example msvc2015 isn't backwards compatible, so you likely need to match the versions as well. -
I have specific set of libraries for both mingw and msvc.
Also, i linked the system libraries in the .pro file as it was not accepting them from the system variables "PATH"
My issue is just during the compilation with opencv.For eg., Qt has its included examples just to try out for beginners, those examples run completely fine, which means the problem lies somewhere in the code itself which i wrote.
these are all the compilers i have which are seperately
I need to get my default compiler to work with opencv.
thats my end goal