Unsolved I'm having issues with my compiler after reinstalling it several times, already. Qt can't find the main.o path directory file.
-
Hi,
Unless I'm mistaken, isn't your
main
function signature wrong ? -
@RedDot The messages in red are because it is calling
del main.o
and 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.
-
@SGaist Hi,
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. -
@RedDot said in I'm having issues with my compiler after reinstalling it several times, already. Qt can't find the main.o path directory file.:
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
void main()
.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?
C:\Users\gian_\Documents\build-untitled-Desktop_Qt_5_9_1_MinGW_32bit-Debug
-
@RedDot Run the
attrib
command 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.
-
Hi,
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.
Regards,
San -
@RedDot said in I'm having issues with my compiler after reinstalling it several times, already. Qt can't find the main.o path directory file.:
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 withvoid main
or ignore parameters withint main()
. All these will work, but the actual function signature is the first one. Withvoid main
you can't return a run code to the OS which is bad. Withint main()
you don't get the command line arguments, which can be bad or neutral if your app never uses them.So the
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
attrib
here and I'll interpret for you. ;) -
@RedDot
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.