このエラーメッセージが表示される理由は、一般的にはCMakeプロジェクトで例外処理を有効にするためのオプションが指定されていないことです。CMakeでは、デフォルトでは例外処理が無効化されており、明示的に有効化する必要があります。
では、いくつかの解決方法を見ていきましょう。
- CMakeLists.txtファイルに例外処理を有効化するオプションを追加する方法:
CMakeLists.txtファイルに以下のような行を追加します:
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fexceptions")
これにより、CMakeプロジェクト全体で例外処理が有効化されます。
- 個別のターゲットに対して例外処理を有効化する方法:
特定のターゲットに対して例外処理を有効化したい場合は、そのターゲットのCMakeLists.txtファイル内に以下のような行を追加します:
target_compile_options(target_name PRIVATE -fexceptions)
上記の「target_name」は、有効化したいターゲットの名前に置き換えてください。
- CMakeコマンドラインでオプションを指定する方法:
CMakeを実行する際に、コマンドラインからオプションを指定することもできます。以下のように実行してください:
cmake -DCMAKE_CXX_FLAGS="-fexceptions" <path_to_source>
「
これらの方法を試してみて、CMakeプロジェクトで例外処理が有効になることを確認してください。エラーメッセージが表示されなくなり、例外処理が適切に処理されるはずです。