android 编译 sdl,使用android ndk编译SDL2示例错误r14

我已经测试过在我的ubuntu 16.04机器上构建SDL2源代码(2.0.5)中的示例。使用android ndk编译SDL2示例错误r14

根据https://wiki.libsdl.org/Android,我安装了android sdk和ndk r14并设置了我的环境变量。

但是我在“简单构建”一章中使用以下命令无法构建。

cd /usr/src/SDL2/build-scripts/

./androidbuild.sh org.libsdl.testgles ../test/testgles.c

它产生以下错误。

Error: The project either has no target set or the target is invalid.

Please provide a --target to the 'android update' command.

[armeabi] Compile thumb : SDL2 <= SDL.c

[armeabi] Compile thumb : SDL2 <= SDL_assert.c

[armeabi] Compile thumb : SDL2 <= SDL_error.c

[armeabi] Compile thumb : SDL2 <= SDL_hints.c

[armeabi] Compile thumb : SDL2 <= SDL_log.c

[armeabi] Compile thumb : SDL2 <= SDL_audio.c

[armeabi] Compile thumb : SDL2 <= SDL_audiocvt.c

[armeabi] Compile thumb : SDL2 <= SDL_audiodev.c

[armeabi] Compile thumb : SDL2 <= SDL_audiotypecvt.c

[armeabi] Compile thumb : SDL2 <= SDL_mixer.c

[armeabi] Compile thumb : SDL2 <= SDL_wave.c

fatal error: error in backend: Cannot select: 0x43bd850: i32 = ARMISD::SSAT 0x43acfc0, Constant:i32<15>

0x43acfc0: i32 = add 0x43ac770, 0x43bd690

0x43ac770: i32 = sra 0x43bda80, Constant:i32<8>

0x43bda80: i32 = add 0x43ac460, 0x43ad2d0

0x43ac460: i32 = add 0x4399d70, 0x43bdf50

0x4399d70: i32 = mul 0x43ad180, 0x439a160

0x43ad180: i32,ch = load), sext from i16> 0x42e7b60, 0x43acaf0, undef:i32

0x43acaf0: i32 = add 0x4399bb0, Constant:i32<2>

0x4399bb0: i32,ch = CopyFromReg 0x42e7b60, Register:i32 %vreg2

0x439a5c0: i32 = Register %vreg2

0x4399fa0: i32 = Constant<2>

0x43aca10: i32 = undef

0x439a160: i32,ch = load), sext from i16> 0x42e7b60, 0x4399ec0, undef:i32

0x4399ec0: i32 = add 0x43ac7e0, Constant:i32<6>

0x43ac7e0: i32,ch = CopyFromReg 0x42e7b60, Register:i32 %vreg0

0x43bdd20: i32 = Register %vreg0

0x439a710: i32 = Constant<6>

0x43aca10: i32 = undef

0x43bdf50: i32 = mul 0x43ac4d0, 0x439a470

0x43ac4d0: i32,ch = load), sext from i16> 0x42e7b60, 0x4399bb0, undef:i32

0x4399bb0: i32,ch = CopyFromReg 0x42e7b60, Register:i32 %vreg2

0x439a5c0: i32 = Register %vreg2

0x43aca10: i32 = undef

0x439a470: i32,ch = load), sext from i16> 0x42e7b60, 0x439a080, undef:i32

0x439a080: i32 = add 0x43ac7e0, Constant:i32<4>

0x43ac7e0: i32,ch = CopyFromReg 0x42e7b60, Register:i32 %vreg0

0x43bdd20: i32 = Register %vreg0

0x43ace70: i32 = Constant<4>

0x43aca10: i32 = undef

0x43ad2d0: i32 = srl 0x43aca80, Constant:i32<24>

0x43aca80: i32 = sra 0x43ac460, Constant:i32<31>

0x43ac460: i32 = add 0x4399d70, 0x43bdf50

0x4399d70: i32 = mul 0x43ad180, 0x439a160

0x43ad180: i32,ch = load), sext from i16> 0x42e7b60, 0x43acaf0, undef:i32

0x43acaf0: i32 = add 0x4399bb0, Constant:i32<2>

0x43aca10: i32 = undef

0x439a160: i32,ch = load), sext from i16> 0x42e7b60, 0x4399ec0, undef:i32

0x4399ec0: i32 = add 0x43ac7e0, Constant:i32<6>

0x43aca10: i32 = undef

0x43bdf50: i32 = mul 0x43ac4d0, 0x439a470

0x43ac4d0: i32,ch = load), sext from i16> 0x42e7b60, 0x4399bb0, undef:i32

0x4399bb0: i32,ch = CopyFromReg 0x42e7b60, Register:i32 %vreg2

0x43aca10: i32 = undef

0x439a470: i32,ch = load), sext from i16> 0x42e7b60, 0x439a080, undef:i32

0x439a080: i32 = add 0x43ac7e0, Constant:i32<4>

0x43aca10: i32 = undef

0x43bd700: i32 = Constant<31>

0x439a550: i32 = Constant<24>

0x43acd20: i32 = Constant<8>

0x43bd690: i32 = mul 0x43ad260, 0x43bdd90

0x43ad260: i32,ch = load), zext from i16> 0x42e7b60, 0x43bdc40, undef:i32

0x43bdc40: i32 = add 0x43ac7e0, Constant:i32<2>

0x43ac7e0: i32,ch = CopyFromReg 0x42e7b60, Register:i32 %vreg0

0x43bdd20: i32 = Register %vreg0

0x4399fa0: i32 = Constant<2>

0x43aca10: i32 = undef

0x43bdd90: i32 = ARMISD::CMOV 0x439a390, 0x439a940, Constant:i32<0>, Register:i32 %CPSR, 0x43ac5b0

0x439a390: i32 = add 0x439a940, Constant:i32

0x439a940: i32 = AssertZext 0x439a6a0, ValueType:ch:i8

0x439a6a0: i32,ch = CopyFromReg 0x42e7b60, Register:i32 %vreg1

0x43ace00: i32 = Register %vreg1

0x43ac700: i32 = Constant

0x439a940: i32 = AssertZext 0x439a6a0, ValueType:ch:i8

0x439a6a0: i32,ch = CopyFromReg 0x42e7b60, Register:i32 %vreg1

0x43ace00: i32 = Register %vreg1

0x43bdbd0: i32 = Constant<0>

0x43ac620: i32 = Register %CPSR

0x43ac5b0: glue = ARMISD::CMPZ 0x439a2b0, Constant:i32<0>

0x439a2b0: i32 = and 0x439a940, Constant:i32<8>

0x439a940: i32 = AssertZext 0x439a6a0, ValueType:ch:i8

0x439a6a0: i32,ch = CopyFromReg 0x42e7b60, Register:i32 %vreg1

0x43ace00: i32 = Register %vreg1

0x43acd20: i32 = Constant<8>

0x43bdbd0: i32 = Constant<0>

0x43acf50: i32 = Constant<15>

In function: MS_ADPCM_nibble

clang: error: clang frontend command failed with exit code 70 (use -v to see invocation)

Android clang version 3.8.275480 (based on LLVM 3.8.275480)

Target: armv5te-none-linux-android

Thread model: posix

InstalledDir: /home/idkiller/android-ndk-r14/toolchains/llvm/prebuilt/linux-x86_64/bin

clang: note: diagnostic msg: PLEASE submit a bug report to http://llvm.org/bugs/ and include the crash backtrace, preprocessed source, and associated run script.

clang: note: diagnostic msg:

********************

PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:

Preprocessed source(s) and associated run script(s) are located at:

clang: note: diagnostic msg: /tmp/SDL_wave-929d6f.c

clang: note: diagnostic msg: /tmp/SDL_wave-929d6f.sh

clang: note: diagnostic msg:

********************

make: *** [obj/local/armeabi/objs/SDL2/src/audio/SDL_wave.o] Error 70

make: *** Waiting for unfinished jobs....

Buildfile: /home/idkiller/work17/SDL2-2.0.5/build/org.libsdl.testgles/build.xml

BUILD FAILED

/home/idkiller/work17/SDL2-2.0.5/build/org.libsdl.testgles/build.xml:56: sdk.dir is missing. Make sure to generate local.properties using 'android update project' or to inject it through the ANDROID_HOME environment variable.

Total time: 0 seconds

There was an error building the APK

我觉得首先'android update'错误可以通过在项目目录中手动更新来修复。

但我无法猜测为什么LLVM后端,使上编译SDL_wave.c

是SDL2不支持建立与锵3.8还没有这个错误?

2017-03-08

pius lee

+0

我确定有一种方法可以使用'ndk-build'和'ant'手动构建SDL应用程序,在构建指令中描述。也许它会工作。 –

+0

我曾在项目目录中手动执行android update和ndk-build,但出现了相同的错误。 –

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值