首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Android:错误:无法打开crtbegin_dynamic.o:没有这样的文件或目录

Android:错误:无法打开crtbegin_dynamic.o:没有这样的文件或目录
EN

Stack Overflow用户
提问于 2013-05-28 23:14:22
回答 4查看 31.5K关注 0票数 26

我使用了以下代码...

安装目录-- ~/Development/Android/android-ndk-r8c/build/tools/make-standalone-toolchain.sh =android-9--

-dir=/Users/me/toolchain

然后我创建以下代码文件...

代码语言:javascript
复制
int main ()
{
  return 0;
}

我试过..。

代码语言:javascript
复制
<toolchain>/arm-linux-androideabi-gcc test.c

我也试过了

代码语言:javascript
复制
 <toolchain>/arm-linux-androideabi-gcc --sysroot=<toolchain>/sysroot test.c 

两个人都回来了。

代码语言:javascript
复制
 toolchain/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: error: cannot open crtbegin_dynamic.o: No such file or directory
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-07-11 14:24:54

为了简单起见,只需设置sysroot:

代码语言:javascript
复制
<toolchain>/arm-linux-androideabi-g++ ~/test.c -o ~/test --sysroot=/home/user/android-ndk/platforms/android-9/arch-arm/
票数 23
EN

Stack Overflow用户

发布于 2014-01-09 22:06:08

/arm-linux-androideabi-gcc测试。c

在这篇文章中你遗漏了sysroot

/arm-linux-androideabi-gcc --sysroot=/sysroot test.c

这一次,sysroot错了。它应该类似于:

代码语言:javascript
复制
--sysroot=/opt/android-ndk-r9/platforms/android-18/arch-arm

您还需要导出LD (所有工具都应该在path上):

代码语言:javascript
复制
$ echo $PATH
/opt/android-ndk-r9/toolchains/arm-linux-androideabi-4.6/prebuilt/darwin-x86_64/bin:
/opt/android-sdk-macosx/tools/:/opt/android-sdk-macosx/platform-tools/:/opt/local/bin:
/opt/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/X11/bin
$ echo $LD
arm-linux-androideabi-ld

您可能应该导出工具链中的所有工具:

代码语言:javascript
复制
export CPP=arm-linux-androideabi-cpp
export CC=arm-linux-androideabi-gcc
export CXX=arm-linux-androideabi-g++
export LD=arm-linux-androideabi-ld
export AS=arm-linux-androideabi-as
export AR=arm-linux-androideabi-ar
export RANLIB=arm-linux-androideabi-ranlib

如果您正在处理Autoconf项目,请添加以下内容:

代码语言:javascript
复制
$ echo $ANDROID_SYSROOT
/opt/android-ndk-r9/platforms/android-18/arch-arm
export CPPFLAGS="--sysroot=$ANDROID_SYSROOT"
export CFLAGS="--sysroot=$ANDROID_SYSROOT"
export CXXFLAGS="--sysroot=$ANDROID_SYSROOT"
票数 13
EN

Stack Overflow用户

发布于 2013-05-29 00:15:57

回过头来看,我根据命令为Android-9制作了我的工具链……

安装目录-- ~/Development/Android/android-ndk-r8c/build/tools/make-standalone-toolchain.sh =android-9--

-dir=/tmp/my-toolchain

我跑的时候..。

代码语言:javascript
复制
<install>/android-ndk-r8c$ find ./ -name crtbegin_dynamic*
.//platforms/android-14/arch-arm/usr/lib/crtbegin_dynamic.o
.//platforms/android-14/arch-mips/usr/lib/crtbegin_dynamic.o
.//platforms/android-14/arch-x86/usr/lib/crtbegin_dynamic.o
.//platforms/android-3/arch-arm/usr/lib/crtbegin_dynamic.o
.//platforms/android-4/arch-arm/usr/lib/crtbegin_dynamic.o
.//platforms/android-5/arch-arm/usr/lib/crtbegin_dynamic.o
.//platforms/android-8/arch-arm/usr/lib/crtbegin_dynamic.o
.//platforms/android-9/arch-mips/usr/lib/crtbegin_dynamic.o
.//platforms/android-9/arch-x86/usr/lib/crtbegin_dynamic.o

正如你所看到的,由于某种原因,我安装的android-9没有这个文件。我为android-14进行了重新构建,一切工作正常。有人知道这是怎么回事吗?笨蛋文件在我这方面移动?

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16795583

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档