я пишущий инструментchain.cmake файл для Linaro toolchain.Cmake cross compile flags
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>
Но во время компиляции, я была ошибка об исключениях, вместо определенных флагов компилятора в ToolChain файле:
error: exception handling disabled, use -fexceptions to enable
Насколько я могу понять мой CMAKE_C_FLAGS_RELEASE, CMAKE_CXX_FLAGS_RELEASE не имеет никакого эффекта. Зачем?
Добро пожаловать в переполнение стека! Если вы нашли ответ на свой вопрос, вы можете ответить на него сами и пометить его как принятый, чтобы другие могли знать, что этот вопрос разрешен. –
Спасибо! Но есть лимит на 6 часов для вашего собственного ответа. – exbluesbreaker
Не устанавливайте ['CMAKE_CROSSCOMPILING'] (https://cmake.org/cmake/help/v3.0/variable/CMAKE_CROSSCOMPILING.html#variable:CMAKE_CROSSCOMPILING). Он установлен CMake. См. Ссылки на документ. – kyb