Articles of gcc

Android Terminal-IDE:terminal-gcc错误:找不到arm-eabi-gcc

我使用Terminal-IDE作为我的开发环境。 ( Google代码网站。 ) 我正在运行Terminal-IDE v 2.02 – 最新版本。 我的Android版本是: Android 4.0.3 软件版本2.14.531.3 71ORD (其余的可能不太相关,但更多请求) 我在一个合适的开发目录中,准备好一个简单的c源代码文件并运行’make’。 我还没有得到任何编译成功的工作。 最有可能的是,在可用的可执行文件与软件要查找的内容之间存在版本不匹配。 这是命令和错误消息: terminal-gcc -c -Wall -I/data/data/com.spartacusrex.spartacuside/files/local/include tester.c -o tester.o /data/data/com.spartacusrex.spartacuside/files/system/bin/terminal-gcc[43]: arm-eabi-gcc: not found make: *** [tester.o] Error 127 当然是Snafu。 我不确定如何找出正确的编译器文件名应该是什么,因为在这个非root用户手机上,我没有权限通过PATH搜索并find实际的可执行文件。 也可能是PATH设置错误。 所有输入赞赏。

如何使用arm-linux-androideabi编译器

我想知道如何使用arm-linux-androideabi编译器。 该编译器是在android-ndk工具上。 android-ndk工具上有ndk-build工具。 要编译ethercat堆栈,我只需要arm-linux-androideabi编译器。 但是,我看到了这个消息。 root@ubuntu:/opt/android/android-ndk-r9c/jni# arm-linux-androideabi-gcc -o test test.c /opt/android/android-ndk-r9c/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: error: cannot open crtbegin_dynamic.o: No such file or directory /opt/android/android-ndk-r9c/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: error: cannot open crtend_android.o: No such file or directory /opt/android/android-ndk-r9c/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: error: cannot find -lc /opt/android/android-ndk-r9c/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: error: cannot find -ldl collect2: ld returned 1 exit status 我该怎么做?

Bambuser ffmpeg – “arm-linux-androideabi-gcc无法创建可执行文件。”

我知道这可能是一些问题的重复。 但这些线程的答案并没有帮助我。 我正在尝试使用Bambuser的ffmpeg为android编译ffmpeg库。 我为客户端版本1.3.7下载了Archive到1.6.0。 来自bambuser。 我按照REAME中的指示进行操作。 在运行./build.sh时遇到以下错误 arm-linux-androideabi-gcc is unable to create an executable file. C compiler test failed. If you think configure made a mistake, make sure you are using the latest version from SVN. If the latest version fails, report the problem to the ffmpeg-user@mplayerhq.hu mailing list or IRC #ffmpeg on irc.freenode.net. Include […]

如何在Android中运行已编译的二进制文件?

我一直在尝试在我的Android手机中运行已编译的二进制文件,但它只是一直告诉我“没有这样的文件或目录”。 具体来说,我编译了wificurse ,并且正如描述中提到的arm命令一样,显然可以为arm架构编译源代码而不对makefile进行任何更改。 所以我做了以下事情: export CROSS_COMPILE=arm-linux-gnueabi- make CROSS_COMPILE=arm-linux-gnueabi- 然后使用生成的二进制文件(wificurse),我执行了以下操作: adb push wificurse /data 在根adb shell中我做了: root@android:/data # chmod 0777 wificurse 没有回报; 作品。 root@android:/data # chmod u+x wificurse 返回“坏模式”。 root@android:/data # busybox chmod 077 wificurse 没有回报; 作品。 root@android:/data # busybox chmod u+x wificurse 没有回报; 作品。 但是当我尝试运行二进制文件时 root@android:/data # ./wificurse 它返回“/ system / bin / sh:./wificurse:没有这样的文件或目录”。 文件夹和二进制文件中的ls确实存在。 […]

如何编译Genymotion的C程序(Android x86)

我正在尝试构建一个简单的HelloWorld应用程序并在Genymotion上运行它。 我的建筑系统是Ubuntu 14.04 64bit。 我安装了Android SDK(r22.6.2)和NDK(r9d)。 第一次尝试:使用预构建的NDK ARM工具链进行构建 TOOLCHAIN = $NDK/toolchains/arm-linux-androideabi-4.8 $TOOLCHAIN/prebuilt/linux-x86_64/bin/arm-linux-androideabi-gcc –sysroot=$PLATFORM hello.c -o hello adb push hello /sdcard/ ./hello 我收到一个错误 /system/bin/sh: ./Hello: not executable: magic 7F45 经过一些研究,我很快意识到Genymotion有x86 arch而不是ARM 第二次尝试:使用x86 Standalone ToolChain构建 首先制作x86 standlone工具链 cd $NDK/build/tools ./make-standalone-toolchain.sh –arch=x86 –platform=android-19 –install-dir=/tmp/android-toolchain –ndk-dir=../../. –system=linux-x86_64 使用工具链构建Hello cd tmp/android-toolchain/bin ./i686-linux-android-gcc -o Hello -c hello.c 在Genymotion上运行Hello adb push hello […]

将gcc命令转换为CMake for android ndk

我需要添加可以用gcc编译的ac项目,如下所示 gcc -I/usr/include/epic5.1 -I/usr/include/i386-linux-gnu/epic5.1 -I./smproject/ -o code code.c ./smproject/smlib.so -lepic5.1 我已将code.c文件内容移动到我的Android NDK .cpp文件(src / main / cpp / native-lib.cpp),并将smproject目录中的所有文件移动到src/main/cpp/smproject/目录 这是我的CMakeList.txt内容 # For more information about using CMake with Android Studio, read the # documentation: https://d.android.com/studio/projects/add-native-code.html # Sets the minimum version of CMake required to build the native library. cmake_minimum_required(VERSION 3.4.1) # Creates and names a […]

使用clang而不是gcc构建android? 和clang stl lib而不是gnustl lib?

我试图使用clang而不是gcc构建一个Android ndk应用程序,因为我已经在Android.mk中试过这个 NDK_TOOLCHAIN_VERSION := clang LOCAL_CLANG :=true LOCAL_LDLIBS := -lc++_static LOCAL_CFLAGS := -std=c++11 并在Application.mk中 APP_PLATFORM := android-9 APP_STL := libc++_static APP_CPPFLAGS := -fexceptions -frtti APP_ABI := armeabi-v7a 但它总是给我std库的链接错误。 任何帮助表示赞赏!

为什么gcc发送代码与ARM指令集的2字节边界对齐?

我正在使用GCC(Android NDK中包含的版本)检查我正在为ARM Android平台编译的C程序的汇编语言输出。 我指定的ARM指令集长度为4个字节而不是THUMB,但令人惊讶的是,emmited汇编语言代码将函数与2字节边界对齐! 以下是生成的代码示例,显示了错误的.align指令: .Ltext0: .global __aeabi_dmul .global __aeabi_d2iz .section .text.InitializeFIRFilter,”ax”,%progbits .align 2 .global InitializeFIRFilter .type InitializeFIRFilter, %function InitializeFIRFilter: .fnstart 根据这个文件 ,正确的对齐应该是4,这是有道理的。 我试图通过使用-falign-functions = 4来强制对齐,但它被忽略了。 以下是我在Android.mk文件中指定的构建标志 LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_ARM_MODE := arm LOCAL_MODULE := nativeJadeMobile LOCAL_SRC_FILES := nativeJadeMobile.c fftasm.s LOCAL_LDLIBS := -llog LOCAL_CFLAGS += -marm -ffast-math -O2 -march=armv6 -falign-functions=4 -save-temps -S […]

有没有办法让Android NDK-build使用更新版本的gcc?

我安装了Android NDK r5b Windows版本,我使用cygwin编译C代码。 我看到NDK-build实际上正在调用C:\ android-ndk-r5b \ toolchains \ arm-linux-androideabi-4.4.3 \ prebuilt \ windows \ bin \ arm-linux-androideabi-gcc-4.4.3。 我想知道是否有办法让NDK-build使用更新版本的gcc? 我想这样做的原因是: Gcc4.4.3已经知道为某些NEON内在函数生成非最佳汇编代码的错误 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43118 http://hilbert-space.de/?p=22 新发布的GCC 4.6声称它对ARM和内在函数有一些改进。 所以我想尝试让NDK-build使用GCC4.6。

arm-linux-androideabi-gcc无法创建可执行文件 – 为android armeabi设备编译ffmpeg

我正在尝试为android armeabi设备编译ffmpeg。 我正在关注roman10.net的教程 他给定的构建脚本为armv7-a设备构建了ffmpeg。 我想为armeabi建造它。 我的最终目标是在android armeabi和armv7-a设备上运行ffmpeg命令。 所以我改变了脚本的CPU部分 #arm v7vfpv3 CPU=armv7-a OPTIMIZE_CFLAGS=”-mfloat-abi=softfp -mfpu=vfpv3-d16 -marm -march=$CPU ” PREFIX=./android/$CPU ADDITIONAL_CONFIGURE_FLAG= build_one 至 #arm v6 CPU=armv6 OPTIMIZE_CFLAGS=”-marm -march=$CPU” PREFIX=./android/$CPU ADDITIONAL_CONFIGURE_FLAG= build_one (我认为将它改为armv6会构建与armeabi设备兼容的ffmpeg。我错了吗?) 疑惑1: 我还需要更换工具链吗? 即从arm-linux-androideabi-4.4.3到arm-eabi-4.4.0 ????? 疑惑2: 当我尝试运行./build.sh(不更改工具链)时,它会给我以下错误: /home/chaitanya/android/android-ndk-r5b/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc is unable to create an executable file. C compiler test failed. If you think configure made a mistake,.. blaah […]