About arm-eabi-gcc and cross-compiling

别说谁变了你拦得住时间么 提交于 2019-12-04 07:42:08

问题


I have a complicated open source library that needs to be ported to Android NDK. First, I need to configure (. / Configure). I understand: I have to do cross-compile with / home/user/android-ndk/build/prebuilt/ linux-x86/arm-eabi-4.4.0/bin/arm-eabi-gcc I think right? This utility will correctly configures a library? If yes, then question 2:

1.I'm trying to compile such a library: libao. use these commands:


PREBUILT = / home/user/android-ndk/build/prebuilt/linux-x86/arm- 
eabi-4.4.0 
PLATFORM = / home/user/android-ndk/build/platforms/android-3/arch-arm 
INSTALL = / home/user/sox-14.3.2/com 

export CC = "/ home/user/android-ndk/build/prebuilt/linux-x86/arm- 
eabi-4.4.0/bin/arm-eabi-gcc" 
export CFLAGS = "-fPIC-DANDROID" 
export LDFLAGS = "-Wl,-T, $ PREBUILT / arm-eabi / lib / ldscripts / 
armelf.x-Wl,-rpath-link = $ PLATFORM / usr / lib-L $ PLATFORM / usr / 
lib-nostdlib $ PREBUILT / lib/gcc/arm-eabi/4.4.0/crtbegin.o $ PREBUILT/ 
lib/gcc/arm-eabi/4.4.0/crtend.o-lc-lm-ldl " 

. / Configure - host = arm - with-gnu-ld - enable-shared \ 

At the end of the assembly receive the following: configure: error: No 16 bit type found on this platform!

What could this mean? How to fix and properly configure the library? Maybe I can somehow easier you can configure the library?


回答1:


I think it is hard (or even impossible) to use ./configure script to build library for Android. Android has its own building system Android.mk for native code and I think this will be the easiest way to go. You have to prepare such makefile manually and then use ndk-build script that come with NDK. Together with NDK samples are installed and you can check there how such file may look like.

If you want to just run configure to generate config.h please follow this link http://warpedtimes.wordpress.com/2010/02/03/building-open-source-libraries-with-android-ndk/. It contains information that following set of parameters for ./configure might work

./configure –host=arm-eabi CC=arm-eabi-gcc CPPFLAGS=”-I$ANDROID_ROOT/build/platforms/android-3/arch-arm/usr/include/” CFLAGS=”-nostdlib” LDFLAGS=”-Wl,-rpath-link=$ANDROID_ROOT/build/platforms/android-3/arch-arm/usr/lib/ -L$ANDROID_ROOT/build/platforms/android-3/arch-arm/usr/lib/” LIBS=”-lc “


来源:https://stackoverflow.com/questions/5919710/about-arm-eabi-gcc-and-cross-compiling

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!