デバッグモードがコンソールアプリケーションで、リリースモードがWin32アプリケーションであるようにアプリケーションを構築したいとします。 documentationによると、コンソールアプリケーションを使用するかどうかによって、WIN32
をadd_executable
に追加する必要があります。CMake:デバッグビルドに別のADD_EXECUTABLEを使用するには?
私はVisual Studioを使用しているため、CMAKE_BUILD_TYPE
を使用できません(生成されたプロジェクトには複数の設定が含まれています)。リリースビルドにWIN32
を使用し、デバッグビルド用に省略するようにCMAKEに指示するにはどうすればよいですか? http://www.cmake.org/Wiki/VSConfigSpecificSettings
if(WIN32)
set_target_properties(WindowApplicationExample PROPERTIES LINK_FLAGS_DEBUG "/SUBSYSTEM:CONSOLE")
set_target_properties(WindowApplicationExample PROPERTIES COMPILE_DEFINITIONS_DEBUG "_CONSOLE")
set_target_properties(WindowApplicationExample PROPERTIES LINK_FLAGS_RELWITHDEBINFO "/SUBSYSTEM:CONSOLE")
set_target_properties(WindowApplicationExample PROPERTIES COMPILE_DEFINITIONS_RELWITHDEBINFO "_CONSOLE")
set_target_properties(WindowApplicationExample PROPERTIES LINK_FLAGS_RELEASE "/SUBSYSTEM:windows")
set_target_properties(WindowApplicationExample PROPERTIES LINK_FLAGS_MINSIZEREL "/SUBSYSTEM:windows")
endif(WIN32)
UPDATEを引用
、しかし:
は、あなたが定義した場合にリンカエラーを回避するために、エントリ・ポイントの設定を使用しますこのソリューションはVC++ 2010では動作しません。 – fbafelipe
@fbafelipe、私はVC++ 2010を使用していました。下部に記載されている回避策を適用しましたか? – Gili
はい、私は、stilは動作しませんでした。言いたいことを言いました、それはVC++ 2010です。私はプロジェクトを開くために使用します(ただし、CMakeはVC++ 2010プロジェクトを生成しますが、何の違いもありません)。私は多くのことを試しましたが、LINK_FLAGSをすべての設定に変更しようとしましたが、WINDOWSサブシステムには変わりません。私はWindowsサブシステムを使用することができた唯一の方法は、ADD_EXECUTABLE(名前WIN32ソース)でしたが、コンソールでデバッグを行い、ウィンドウでリリースすることはできません。 – fbafelipe