The code in my codebase has been compiling for years. I just upgraded Microsoft Visual Studio Professional 2019 to version 16.11.41 and now when building my Visual Studio solution I get:
qtmaind.lib(qtmain_win.obj) : error LNK2019: unresolved external symbol _main referenced in function _WinMain@16
The offending project is for the main application, which is a managed C++ CWinApp-based application. As described in the Microsoft documentation (https://learn.microsoft.com/en-us/cpp/mfc/cwinapp-the-application-class?view=msvc-170) -
Like any program for the Windows operating system, your framework application has a WinMain function. In a framework application, however, you do not write WinMain. It is supplied by the class library and is called when the application starts up.
I saw another old post that referenced this issue, Windows unicode commandline argv, but the discussion there seemed to be revolving around the correct form of main to use for a Unicode application. Unfortunately, my understanding of CWinApp applications leads me to believe I do not have access to main.
Any ideas? My assumption here is that this is a Microsoft problem related to the new version of Visual Studio, and I'm interested to know if anyone has encountered anything similar.
Mystery solved - turns out it was a Qt VS Tools update (from 3.2.0.47 to 3.3.0.13) that did it. Rolling back to an earlier version seems to fix the problem.
Here is the Qt bug report: https://bugreports.qt.io/browse/QTVSADDINBUG-1242