2

cmakeを介してMinGW+Qt用に作成されたプロジェクトがあります。CMakeLists.txtに私は持っています

add_executable (project-name WIN32 ${MOC_SRCS} ${HEADERS} ${SOURCES} ${RESOURCES} ${QtApp_RCC_SRCS})

VisualStudio 2010にコンパイルしようとすると、次のリンカーエラーが発生します。

MSVCRTD.lib(crtexew.obj) : error LNK2019: undefined reference _WinMain@16 in func ___tmainCRTStartup

次に、WIN32を消去します

add_executable (project-name ${MOC_SRCS} ${HEADERS} ${SOURCES} ${RESOURCES} ${QtApp_RCC_SRCS})

プロジェクトはコンパイルされて正常に動作しますが、Qtウィンドウを備えたコンソールウィンドウがあります。コンソールを無効にする方法は?

4

1 に答える 1

1

add_executableWIN32内で使用するということは、アプリケーションのタイプがSUBSYSTEM:WINDOWSになることを意味します。つまり、コンソールを必要としないアプリケーションです。main(...)これが指定されている場合、WinMain(...)(mainとは異なる引数を持つ)ではなく、が期待されます。コードにこれが含まれていない可能性が高いため、報告するリンカーエラーが発生します。

削除WIN32すると、実行可能ファイルはデフォルトタイプのSUBSYSTEM:CONSOLEになります。これは、アプリケーションが機能する理由を説明していますが、コンソールが表示されています。

したがって、これを修正するには、を指定しますが、をにWIN32変更します。main()WinMain()

于 2012-08-30T10:14:56.080 に答える