首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Android工具链的交叉编译

使用Android工具链的交叉编译
EN

Stack Overflow用户
提问于 2015-12-10 18:39:41
回答 2查看 1.6K关注 0票数 2

我需要为android编译mpich,我使用NDK arm-linux-andoirdeabi-4.8工具链交叉编译mpi,我做了以下工作

代码语言:javascript
复制
export PATH="$NDK_ROOT/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/:$PATH"
export SYS_ROOT="$NDK_ROOT/platforms/android-8/arch-arm/"
export CC="arm-linux-androideabi-gcc --sysroot=$SYS_ROOT"
export LD="arm-linux-androideabi-ld"
export AR="arm-linux-androideabi-ar"


./configure --host=arm-linux-androideabi  --prefix=/Crosscompile2/jni/mpich/ LIBS="-lc -lgcc " --disable-shared --disable-fortran --disable-cxx 

但我得到了以下错误:

代码语言:javascript
复制
checking for pthread_key_create in -lpthread... no
checking checkpointing library... configure: error: pthreads is required for checkpointing, but was not found
configure: error: src/pm/hydra configure failed

当我加入-lpthread的时候

代码语言:javascript
复制
LIBS="-lc -lgcc -lpthread"

它没有编译

代码语言:javascript
复制
checking whether the C compiler works... no
configure: error: C compiler cannot create executables
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-12-10 19:43:21

Android的特殊之处在于它实现了p线程,但没有单独的libp线程.a。简单的解决办法是usr/lib

代码语言:javascript
复制
$AR q $SYS_ROOT/usr/lib/libpthread.a

在运行./configure之前

票数 2
EN

Stack Overflow用户

发布于 2016-10-06 14:14:31

对于libp线程问题,您有两个选项。

  1. sed从配置/生成文件中剔除了需求,因为p线程包含在仿生学libc中。

  1. 创建一个libpthead,它是libc的一个符号链接

cd $SYSROOT/usr/lib

ln -s libc.a libpthread.a

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

https://stackoverflow.com/questions/34209320

复制
相关文章

相似问题

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