理論的には、cmake を使用してリソース ファイルを使用して Win32 アプリを作成するのは非常に簡単です。コマンドでは、add_executable
リソース ファイルを C または C++ ソース ファイルと同じくらい簡単にリストできます。ただし、MinGW ツールを使用してビルドする場合、既知のバグがあります。
CMakeFiles.txt に以下を含めるという回避策を見つけました...
if(MINGW)
set(CMAKE_RC_COMPILER_INIT windres)
ENABLE_LANGUAGE(RC)
SET(CMAKE_RC_COMPILE_OBJECT
"<CMAKE_RC_COMPILER> <FLAGS> <DEFINES> -o <OBJECT> <SOURCE>")
endif(MINGW)
残念ながら、これはうまくいかないようです。何が起こるかは、理解できないファイルをwindres
生成することです。<whatever>.rc.res
ld
私の検索では、特に Visual Studio 以外では、Win32 のサポートが非常に優先度が低いと見なされているという強い疑いが生じました。Win32 は明らかに以前ほど重要ではないため、これは理解できます。もちろん、Visual Studio Express Edition は無料で簡単に入手できます。
それでも、私がまだ使っているいくつかの古い Win32 アプリに MinGW GCC を使用できれば、私にとって便利です。他に何もなければ、GCOV テスト カバレッジ統計を取得できます。
明らかに、他のすべてが失敗した場合でも、カスタム ビルド コマンドを使用していつでもリソース ファイルを処理できます。1 つの問題は、windres と ld のどちらにも詳しくないこと、または MinGW が Win32 リソース ファイルを処理する方法に慣れていないことです。もう1つは、誰かが私と共有したい優れたホイールをすでに持っている場合、ホイールを再発明したくないということです.
基本的にはこれで終わりです - cmake を使用し、MinGW を使用して (ただし、Visual Studio のサポートを壊さずに)、リソース ファイルを使用して Win32 アプリのビルドをサポートするにはどうすればよいですか?