0

Linaroツールチェーン用のtoolchain.cmakeファイルを作成しています。

include(CMakeForceCompiler)
set(CMAKE_CROSSCOMPILING   TRUE)
set(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_SYSTEM_VERSION 1)
set(CMAKE_SYSTEM_PROCESSOR "armv7-a")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC -Wno-psabi -frtti -fexceptions" )
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC -Wno-psabi -fexceptions" )
set(CMAKE_C_COMPILER /home/stranger/linaro/android-toolchain-eabi/bin/arm-linux-androideabi-gcc)
set(CMAKE_CXX_COMPILER /home/stranger/linaro/android-toolchain-eabi/bin/arm-linux-androideabi-g++)
CMAKE_FORCE_C_COMPILER("${CMAKE_C_COMPILER}" GNU)
CMAKE_FORCE_CXX_COMPILER("${CMAKE_CXX_COMPILER}" GNU)
set(CMAKE_FIND_ROOT_PATH  home/stranger/linaro/android-toolchain-eabi/arm-linux-androideabi)
include_directories( SYSTEM /home/stranger/android-ndk-r8/platforms/android-14/arch-arm/usr/include)
include_directories( SYSTEM /home/stranger/android-ndk-r8/sources/cxx-stl/gnu-libstdc++/include)
include_directories( SYSTEM /home/stranger/android-ndk-r8/sources/cxx-stl/gnu-libstdc++/libs/armeabi-v7a/include)

私はcmakeを実行します:

cmake -DBUILD_ANDROID=On -DCMAKE_TOOLCHAIN_FILE=<path to this toolchain.cmake>  -DCMAKE_BUILD_TYPE=Release <path to my cmake project>

しかし、コンパイル時に、ツールチェーンファイルで定義されたコンパイラフラグではなく、例外に関するエラーが発生しました。

error: exception handling disabled, use -fexceptions to enable

私のCMAKE_C_FLAGS_RELEASEを理解できる限り、CMAKE_CXX_FLAGS_RELEASEは効果がありません。なんで?

4

1 に答える 1

2

問題は解決しました、私の間違いです。私はメインプロジェクトset(CMAKE_CXX_FLAGS "<flags>")で反対を使用します。set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}<flags>"この CMakeLists.txt は android-cmake と Google-NDK で正しく機能するため、混乱しました (代わりに、すべての android-cmake ツールチェーン フラグが拒否されました)。

于 2012-06-17T07:52:27.260 に答える