【发布时间】:2013-06-11 06:25:41
【问题描述】:
我的目标是在 Android 手机上运行 MPICH。我正在使用 Debian Jessie。我认为我会在本教程之后实现这一目标: http://hex.ro/wp/projects/personal-cloud-computing/compiling-mpich2-for-android-and-running-on-two-phones/ 但是我没有使用 Buildroot 创建工具链,而是决定从 Android NDK 创建它,就像在这个网站上一样: http://www.threadstates.com/articles/2013/setting-up-an-android-cross-compiling-environment-with-the-ndk.html 我尝试使用 MPICH 库版本 2.1.4、2.1.5、3.0.4 并使用命令对其进行配置:
sudo CFLAGS=" -march=armv5 -mfpu=vfp -static "
CC=/home/cerbia/android/bin/arm-linux-androideabi-gcc ./configure
--prefix=/home/cerbia/old --host=arm-linux --with-pm=smpd --disable-f77 --disable-fc
但我仍然有这种错误:
配置:错误:SMPD 需要 MD5 支持,而配置不能 在 md5.h 中找到 md5_calc 或在 openssl/md5.h 中找到 MD5
我发现它与 openssl 版本连接,我尝试按照以下说明进行操作:
下载、编译、修改并安装OpenSSL到NDK目录。 cd ~ wget www.openssl.org/source/openssl-1.0.0g.tar.gz tar xvzf
openssl-1.0.0g.tar.gz cd openssl-1.0.0g ./config no-asm shared --prefix=$ANDROID_ROOT/platforms/android-3/arch-arm/usr
编辑 Makefile:
CC= arm-linux-gnueabi-gcc-4.6CFLAG= -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DOPENSSL_N -DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall -fPIC
DEPFLAG= -DOPENSSL_NO_GMP -DOPENSSL_NO_JPAKE -DOPENSSL_NO_MD2 -DOPENSSL_NO_R C5 -DOPENSSL_NO_RFC3779 -DOPENSSL_NO_STORE
PEX_LIBS=
EX_LIBS= -ldl
EXE_EXT=
ARFLAGS=
AR= arm-linux-gnueabi-ar $(ARFLAGS) r
RANLIB= arm-linux-gnueabi-ranlib
NM= arm-linux-gnueabi-nm
PERL= /usr/bin/perl
TAR= 焦油
TARFLAGS= --no-recursion
MAKEDEPPROG=gcc
LIBDIR=lib
我尝试用下面类似的方式交叉编译 MPICH 而不是 HIPL
下载并交叉编译 HIPL。 cd ~ bzr co lp:hipl trunk cd trunk edit configure.ac 并注释掉所有 AM_CFLAGS autoreconf --install
./configure --disable-gcc-warn --disable-firewall -host=arm-linux
CC=arm-linux-gnueabi-gcc-4.6
CPPFLAGS="-I$ANDROID_ROOT/platforms/android-3/arch-arm/usr/include"
CFLAGS="-nostdlib"
LDFLAGS="-Wl,-rpath-link=$ANDROID_ROOT/platforms/android-3/arch-arm/usr/lib,-L$ANDROID_ROOT/platforms/android-3/arch-arm/usr/lib"
LIBS="-lc" make make all-am make[1]: 进入目录`/home/mkomu/projects/hipl-bzr/arm' CC lib/core/builder.lo 文件中
包含在 lib/core/debug.h:34:0,
from lib/core/crypto.h:43, from lib/core/builder.c:100: lib/core/protodefs.h:917:5: error: unknown type name 'in_port_t'lib/core/protodefs.h:929:5:错误:未知类型名称“in_port_t”
lib/core/protodefs.h:1027:5:错误:未知类型名称“in_port_t”
lib/core/protodefs.h:1036:5:错误:未知类型名称“in_port_t”
lib/core/protodefs.h:1043:5:错误:未知类型名称“in_port_t”
lib/core/protodefs.h:1054:5:错误:未知类型名称“in_port_t”
lib/core/protodefs.h:1055:5: 错误:未知类型名称 'in_port_t' ...
来自网站:bugs.launchpad.net/hipl/+bug/715126
但我和那里的人有同样的错误..
make[8]: Wejście do katalogu `/home/cerbia/old/mpich2-1.3.2/src/mpid/ch3/channels/nemesis/nemesis/netmod/tcp' CC tcp_finalize.c 在包含的文件中 tcp_finalize.c:7:0: tcp_impl.h:108:89: 错误:未知类型名称 'in_port_t' make[8]: * [tcp_finalize.o] Błąd 1
你有什么建议我应该尝试使它工作吗?
【问题讨论】:
标签: android openssl arm cross-compiling mpich