I'm having issues with my compiler after reinstalling it several times, already. Qt can't find the main.o path directory file.
The information with the issue is posted in the link below, if you have the time to look at it, it will mean a lot.
What is the actual build error ?
It seems to say
The process "C:\Qt\Tools\mingw530_32\bin\mingw32-make.exe" exited normally.
So I didn't see any actual errors ?
Also make sure that his virus scanner is not interfering with the .exe creation. ( im looking at you avast ;)
Also, does the build folder contain any .o files ? ( like for mainwindow)
The actual build error on my compiler that my friend is not receiving as you can see in the picture is " Could Not Find C:\Users\gian_\Documents\build-Test-Desktop_Qt_5_9_1_MinGW_32bit-Debug\release\main.o"
Here's a picture below, when I just rebuild it.
What do you mean the build folder? The debug folder for this particular project? If so, yes it's there.
I would like to note the above has a different name project but it's the same output it's showing as the previous one in the stackoverflow.
Please provide more details, as from your question, it is not clear what you are trying to achieve.
The error you have highlighted is not an actual error. It is just the 'make clean' step failing since there are no object files in the build directory, in the first place.
May be you can also share the code you were trying to build.
So, what I find odd it's compiling fine, but it's producing the message below in red even when I set the Test to release instead of debug and rebuild it. Is it normal for the compiler to act this sort of way?
@sanojsubran The code is a simple hello world program. I've clean the project and file and whenever I rebuild it, it gives that message.
What's weird is the qmake seems to not be call in the place like where my friend has his?
Friend setup below:
My setup below:
Also I would like note I left everything QT had in default during the installation process, so I did not change anything.
So If you make a brand new GUI project,
and run it , no .exe will be produced ?
@mrjj GUI project as in a widget project? When I run the above program "Hello World" in a non QT project in plain C++ application, it runs and it shows "Hello World". However, when I rebuild it, that message in the red appears.
So, it does run the .exe as you can see in the image below.
However, when I rebuild it, I get the same message that I've been getting with the above images main.o.
Here's when I have it as released instead of debug.
So it does work ?
Compile + link+ run
The red lines seems to be only the del
command not finding moc_ and UI_ and .o files.
Just part of Make Clean.
Please try one thing. When you switch the build configuration from Debug to Release or vice versa, right click the project and execute the option "Run qmake" manually once and then do a rebuild. Same is the case, when you make any change in the build configuration page.
The error is just the clean operation is trying to delete the object files which has been already been deleted. This is what I infer from the logs.
Desktop_Qt_5_9_1_MinGW_32bit-Debug\releaseshould always be empty, aka ghost folder that is created due to Windows quirks and the compiler, we discussed this here in an other topic somewhere.
did you manually change your Shadow-Build folder? Have you tried, to completely delete the shadow build folder and/or selected a new path for your shadow build?
Delete the build folder and user files. Try Clean, qmake and build your project and run it.
I've gave that a try and I received to messages one when I ran the qmake and the other when rebuild it afterwards.
When I manaully ran qmake once.
When I try to rebuild the project afterwards. I did this vice versa, show the same thing, red message, once again appeared.
When I build it though I do not see the message and it works perfectly.
However when I either rebuild it or clean all project it does appear, again.
@J.Hilk No, I have not try that, by shadow build folder would it be this? If so, how should I select a new path for the folder? And should I remove it what I just highlighted? By hitting the remove button above general.
I get same red lines if i add a "make clean step" to the project
Check you didnt add such step. To be sure.
Close Creator. delete the .user file in project folder.
set Compiler again. Rebuild.
@Vinod-Kuntoji When I deleted the build folder and left everything else remainding such as the main.cpp and the .pro file.
I rebuild the project and it seem to work?
However, I added another output statement. Cleaned it and I received the same red message, I also rebuild it and got this below.
Please show your pro file
@mrjj Okay, so here's what I came to conclusion, first off, I've did what you you ask me to do. I closed the creator by this I closed the project, as well as closed all. I deleted the .user file in the project folder. I was asked to set the compiler again, so here's the configuration below.
I rebuild it and received this message below.
Now, to not received the message above I deleted the .user file as well as the builder folder. Rebuild it and it look like it works. That being said do I need to continue to do this process every time I want to rebuild the project?
Ok. not a make clean step then.
Im out of ideas.
You can safely ignore the red lines.
I decided to create a new QT account because maybe the issue is because it's retrieving meta information from remote repository. It does it when I installed it, since I have an account already with this IDE. So, I decide to create a new one instead, to avoid doing that. Also, after trying almost everything, I decided to reset my pc to factory settings, this deletes all the files, and apps.
I'm going to reinstall QT Creator, as well as VS again. Could the problem be cause by VS as well, I had this installed way before I decide to try out the QT Creator IDE? I've notice it's conflicting with QT creator, what I mean by this whenever I created a project in QT, it would also create one for VS automatically?
Unless I'm mistaken, isn't your
mainfunction signature wrong ?
@RedDot The messages in red are because it is calling
del main.oand main.o doesn't exist at that path. Before you rebuild or clean, go check that path (after a build) and see if main.o exists where it is supposed to. Also make sure the permissions are set properly.
The reason I suggest this is because I see mixing of Release/Debug in the paths. So it will be something like
*-MinGW-Debug/release/main.o. That leads me to believe it is trying to remove something that isn't there and was never created.
You can ignore these lines, but it's interesting that you have MinGW-Debug and -Release but then debug/release inside each of those. That seems like a configuration issue to me.
It's not wrong, that's how you write the main function in C++, I'm assuming you are referring to the int main ()? Ff so, it's not wrong. Also after resetting my entire pc to factory settings, deleting all the files/apps. I'm still having the same problem, that being said. The compiler does in fact compiles, and I'm able to run an .exe inside the IDE. Although, at this point, I've given up and decide to ignore the red message that consist of the main.o.
It's not wrong
Well technically it is wrong. It works, and I do it like that for quick lazy test apps like this one. You can also do
However @SGaist is right, the actual function signature for a c/c++ main entry point is
int main(int, char**), i.e.
int main(int argc, char *argv).
@ambershark Hi, I just saw this before I submitted my reply to SGaist. In other words I should look for that specific directory you've written in red? The main.o is currently in this directory. Also how can I tell if the permissions are set properly? Or how I do where it should be set to?
@RedDot Run the
attribcommand will show permissions. Or if you are a gui user right click->properties, should be a permissions tab in there.
I'm not much of a windows user these days, just for video games mostly and testing my windows versions of my software. So I may be off a bit on right click filename->properties. :)
And those files from red in your screen shot are for sure there in that directory? Then when you run make clean or rebuild it says it can't find them?
Also can I see your *.pro file?
@ambershark It was written this way when I created a plain C++ project, however I changed it to the actual way it's taught in books and universities. That's why I've written it as int main(), I've noticed though that in Visual Studio, it would create your basic hello world program, but with the same function signature as I have it. So, maybe it depends on the IDE?
When I ran the attrib.exe command it gave me a messages that I am not familiar with. Also when I right click on the project fileName -> properties I could not see the permission tab in there.
.pro file below.
I would suggest you don't worry about the messages in red in the 'Compile Output' pane. If you get errors in the 'Issues' pane, do resolve it.
According to my understanding, what is happening is that when you are trying to do rebuild, the make is trying to delete the object files in both the 'debug' and 'release' folders. And since you have only build the project in the 'Debug' mode, it is not able to able to find the object file in the release folder. So this message is fine.
Possible scenarios where this message appear would be,
- Manually when run 'clean' on the project and then do a rebuild, which in turn again will try to clean the project.
- When you build the code in the debug only and do a rebuild. In this case, from the screenshots, I can see that some how it is trying to delete the object files in release folder also, which has never existed.
It was written this way when I created a plain C++ project, however I changed it to the actual way it's taught in books and universities. That's why I've written it as int main(), I've noticed though that in Visual Studio, it would create your basic hello world program, but with the same function signature as I have it. So, maybe it depends on the IDE?
Yea it's the main entry point for c++, which is not affected by IDE at all. C++ is just plain text files which you can write and compile with no IDE at all.
The correct way is
int main(int, char **). You can also ignore return value with
void mainor ignore parameters with
int main(). All these will work, but the actual function signature is the first one. With
void mainyou can't return a run code to the OS which is bad. With
int main()you don't get the command line arguments, which can be bad or neutral if your app never uses them.
int main()that you are using will work just fine, however it is not technically correct. :) And of course has the limitations I listed above. But that really has nothing to do with your issues.
I would recommend just ignoring the reds for now since they aren't causing any issues.
And finally, if you want help with permissions (although I'm sure they are fine) you can post the output of
attribhere and I'll interpret for you. ;)
you mentioned earlier, that you also have visualstudio installed, at least before your factory reset. I would suggest that you use the MSVC (2015 or 2017) compiler and try it with that. Maybe its one of Windows many quirks :-)
I personally prefere that compiler over MinGw, at least for pure windows projects.