2017-11-10 2 views
1

arm-linux-androideabiを使用してandroid用のutil-linuxライブラリをクロスコンパイルしています。android用のutil-linuxライブラリをクロスコンパイルしているときにエラーが発生しました

私はツールチェーンを作成し、 として構成ステートメントを実行しました./configure --prefix =/opt/android --build = $ {BUILD} --host = arm-linux-androideabi --disable-rpath- --without-ncursesw --with-ncurses --without-tinfo

私は次のエラーが発生しています。

/u/CC/android-ndk-toolchain/sysroot/usr/include/fcntl.h:49:13: warning: redundant redeclaration of 'fcntl' [-Wredundant-decls] 
In file included from libblkid/src/topology/sysfs.c:17:0: 
/u/CC/android-ndk-toolchain/sysroot/usr/include/unistd.h:143:12: note: previous declaration of 'fcntl' was here 
In file included from ./include/blkdev.h:11:0, 
       from ./libblkid/src/blkidP.h:34, 
       from libblkid/src/topology/topology.h:4, 
       from libblkid/src/topology/sysfs.c:21: 
/u/CC/android-ndk-toolchain/sysroot/usr/include/sys/ioctl.h:39:12: warning: redundant redeclaration of 'ioctl' [-Wredundant-decls] 
In file included from libblkid/src/topology/sysfs.c:17:0: 
/u/CC/android-ndk-toolchain/sysroot/usr/include/unistd.h:144:12: note: previous declaration of 'ioctl' was here 
    CCLD  libblkid.la 
/usr/lib/gcc/arm-linux-androideabi/4.7.4/../../../../arm-linux-androideabi/bin/ld: error: libblkid/src/.libs/libblkid_la-config.o: multiple definition of 'l' 
/usr/lib/gcc/arm-linux-androideabi/4.7.4/../../../../arm-linux-androideabi/bin/ld: libblkid/src/.libs/libblkid_la-cache.o: previous definition here 
/usr/lib/gcc/arm-linux-androideabi/4.7.4/../../../../arm-linux-androideabi/bin/ld: error: libblkid/src/.libs/libblkid_la-evaluate.o: multiple definition of 'l' 
/usr/lib/gcc/arm-linux-androideabi/4.7.4/../../../../arm-linux-androideabi/bin/ld: libblkid/src/.libs/libblkid_la-cache.o: previous definition here 
/usr/lib/gcc/arm-linux-androideabi/4.7.4/../../../../arm-linux-androideabi/bin/ld: error: libblkid/src/.libs/libblkid_la-save.o: multiple definition of 'l' 
/usr/lib/gcc/arm-linux-androideabi/4.7.4/../../../../arm-linux-androideabi/bin/ld: libblkid/src/.libs/libblkid_la-cache.o: previous definition here 
/usr/lib/gcc/arm-linux-androideabi/4.7.4/../../../../arm-linux-androideabi/bin/ld: error: ./.libs/libcommon.a(libcommon_la-blkdev.o): multiple definition of 'l' 
/usr/lib/gcc/arm-linux-androideabi/4.7.4/../../../../arm-linux-androideabi/bin/ld: libblkid/src/.libs/libblkid_la-cache.o: previous definition here 
/usr/lib/gcc/arm-linux-androideabi/4.7.4/../../../../arm-linux-androideabi/bin/ld: error: ./.libs/libcommon.a(libcommon_la-env.o): multiple definition of 'l' 
/usr/lib/gcc/arm-linux-androideabi/4.7.4/../../../../arm-linux-androideabi/bin/ld: libblkid/src/.libs/libblkid_la-cache.o: previous definition here 
/usr/lib/gcc/arm-linux-androideabi/4.7.4/../../../../arm-linux-androideabi/bin/ld: error: ./.libs/libcommon.a(libcommon_la-pager.o): multiple definition of 'l' 
/usr/lib/gcc/arm-linux-androideabi/4.7.4/../../../../arm-linux-androideabi/bin/ld: libblkid/src/.libs/libblkid_la-cache.o: previous definition here 
/usr/lib/gcc/arm-linux-androideabi/4.7.4/../../../../arm-linux-androideabi/bin/ld: error: ./.libs/libcommon.a(libcommon_la-parse-date.o): multiple definition of 'l' 
/usr/lib/gcc/arm-linux-androideabi/4.7.4/../../../../arm-linux-androideabi/bin/ld: libblkid/src/.libs/libblkid_la-cache.o: previous definition here 
/usr/lib/gcc/arm-linux-androideabi/4.7.4/../../../../arm-linux-androideabi/bin/ld: error: ./.libs/libcommon.a(libcommon_la-path.o): multiple definition of 'l' 
/usr/lib/gcc/arm-linux-androideabi/4.7.4/../../../../arm-linux-androideabi/bin/ld: libblkid/src/.libs/libblkid_la-cache.o: previous definition here 
/usr/lib/gcc/arm-linux-androideabi/4.7.4/../../../../arm-linux-androideabi/bin/ld: error: ./.libs/libcommon.a(libcommon_la-randutils.o): multiple definition of 'l' 
/usr/lib/gcc/arm-linux-androideabi/4.7.4/../../../../arm-linux-androideabi/bin/ld: libblkid/src/.libs/libblkid_la-cache.o: previous definition here 
/usr/lib/gcc/arm-linux-androideabi/4.7.4/../../../../arm-linux-androideabi/bin/ld: error: ./.libs/libcommon.a(libcommon_la-strutils.o): multiple definition of 'l' 
/usr/lib/gcc/arm-linux-androideabi/4.7.4/../../../../arm-linux-androideabi/bin/ld: libblkid/src/.libs/libblkid_la-cache.o: previous definition here 
/usr/lib/gcc/arm-linux-androideabi/4.7.4/../../../../arm-linux-androideabi/bin/ld: error: ./.libs/libcommon.a(libcommon_la-timeutils.o): multiple definition of 'l' 
/usr/lib/gcc/arm-linux-androideabi/4.7.4/../../../../arm-linux-androideabi/bin/ld: libblkid/src/.libs/libblkid_la-cache.o: previous definition here 
/usr/lib/gcc/arm-linux-androideabi/4.7.4/../../../../arm-linux-androideabi/bin/ld: error: ./.libs/libcommon.a(libcommon_la-ttyutils.o): multiple definition of '_POSIX_VDISABLE' 
/usr/lib/gcc/arm-linux-androideabi/4.7.4/../../../../arm-linux-androideabi/bin/ld: ./.libs/libcommon.a(libcommon_la-pager.o): previous definition here 
/usr/lib/gcc/arm-linux-androideabi/4.7.4/../../../../arm-linux-androideabi/bin/ld: error: ./.libs/libcommon.a(libcommon_la-exec_shell.o): multiple definition of 'l' 
/usr/lib/gcc/arm-linux-androideabi/4.7.4/../../../../arm-linux-androideabi/bin/ld: libblkid/src/.libs/libblkid_la-cache.o: previous definition here 
/usr/lib/gcc/arm-linux-androideabi/4.7.4/../../../../arm-linux-androideabi/bin/ld: error: ./.libs/libcommon.a(libcommon_la-plymouth-ctrl.o): multiple definition of 'l' 
/usr/lib/gcc/arm-linux-androideabi/4.7.4/../../../../arm-linux-androideabi/bin/ld: libblkid/src/.libs/libblkid_la-cache.o: previous definition here 
/usr/lib/gcc/arm-linux-androideabi/4.7.4/../../../../arm-linux-androideabi/bin/ld: error: ./.libs/libcommon.a(libcommon_la-langinfo.o): multiple definition of 'l' 
/usr/lib/gcc/arm-linux-androideabi/4.7.4/../../../../arm-linux-androideabi/bin/ld: libblkid/src/.libs/libblkid_la-cache.o: previous definition here 
collect2: error: ld returned 1 exit status 
Makefile:5414: recipe for target 'libblkid.la' failed 
make[2]: *** [libblkid.la] Error 1 
make[2]: Leaving directory '/u/CC/util-linux-2.31' 
Makefile:11990: recipe for target 'all-recursive' failed 
make[1]: *** [all-recursive] Error 1 
make[1]: Leaving directory '/u/CC/util-linux-2.31' 
Makefile:5002: recipe for target 'all' failed 
make: *** [all] Error 2 

この問題を解決するのを手伝ってください。 ありがとうございます。

+0

これはすでにエラーを指摘していますので、その冗長なRedCalartionに移動し、それがなぜ苦情であるかを確認する必要がありますか? – LethalProgrammer

答えて

0

再宣言に関する最初の警告は、NDKヘッダーが壊れているためです。 "統一ヘッダー"までは<fcntl.h><unistd.h>から盲目的にfcntl()ioctl()(そしてそれ以上のもの)を宣言しています。統一されたヘッダーは正しい方法でそれを行い、NDK r14以降で利用可能です(hereを参照)。

第2の問題について - と_POSIX_VDISABLEという名前が、偶然、グローバル変数または関数として定義されている可能性があります。ビルドスクリプトのいくつかの問題のように見えます。実際のコンパイラ/リンカのコマンドを見てうれしいです。

関連する問題