arm-linux を使用して例外処理を行う単純なプログラムをコンパイルする場合-androideabi-g コンパイラでは、例外処理を有効にするには -fExceptions フラグを追加する必要があります。ただし、set(CMAKE_EXE_LINKER_FLAGS) または set(CMAKE_C_FLAGS) を使用して CMake を通じてこのフラグを追加しようとすると、エラーが発生します。
CMake ファイルにリンカーまたはコンパイル フラグを追加するには、次の手順に従います。手順:
フラグを定義します: 次のコマンドを使用して -fExceptions フラグを定義します:
SET(FLAG_NAME -fexceptions)
CMake 変数に追加: 関連する CMake 変数にフラグを追加します。コンパイラ フラグの場合:
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${FLAG_NAME}") SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${FLAG_NAME}")
リンカ フラグの場合:
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${FLAG_NAME}") SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${FLAG_NAME}")
ターゲット プロパティを使用: あるいは、ターゲット プロパティを使用することもできます。
get_target_property(TEMP ${TARGET} COMPILE_FLAGS) if(TEMP STREQUAL "TEMP-NOTFOUND") SET(TEMP "") else() SET(TEMP "${TEMP} ") endif() SET(TEMP "${TEMP}${FLAG_NAME}") set_target_properties(${TARGET} PROPERTIES COMPILE_FLAGS ${TEMP})
これらの手順に従うことで、CMake ファイルにリンカーまたはコンパイル フラグを正常に追加し、-fExceptions フラグによる例外処理を有効にする問題を解決できます。
以上がCMake でリンカーまたはコンパイル フラグを正しく追加するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。