Точка входа Qt5 программы и компилятор Visual Studio 2012+

Многие сталкивались с тем что при компиляции студией Qt-проектов (и не только) Windows не хочет использовать стандартную функцию main(), а требует свои WinMain для GUI приложений и при использовании UNICODE, выдавая ошибки линковки вроде этих:
LNK2019: unresolved external symbol main referenced in function __tmainCRTStartup
или
error LNK2019: unresolved external symbol _WinMain@16 referenced in function ___tmainCRTStartup

На более старых версиях проблему можно было отчасти решить, задав точку входа принудительно через
/ENTRY:main
или
#pragma comment( linker, "/entry:main" )
Но сейчас такой способ больше не работает, программа будет падать при старте. Если вам не нужна поддержка WCHAR в параметрах argv, то проще всего слинковать со специальной служебной либой Qt5 для линковки с main(). Библиотека называется Qt5::WinMain:

Leave a Reply

Your email address will not be published. Required fields are marked *


You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">