我試圖使用ndk-build爲arm64-v8a
構建Boost 1.58.0,但是我遇到了問題。Boost 1.58.0使用ndk-build構建arm64-v8a
當我運行bjam
時,它完成與錯誤unrecognized command line option '-m64'
。
而且我發現了什麼是錯的「表演配置檢查」部分,如 :
- 32-bit : no
- 64-bit : yes
- arm : no
...
我猜arm
場應該是yes
,這是完全不同的,當我建立它armv7-a
。 armv7-a
的相應版本一直都是成功的。
[環境]
- 主機:Ubuntu Linux操作系統的x86
- NDK:機器人-NDK-r10e(谷歌)
- GCC:4.9
- 機器人平臺:機器人-21
使用的構建命令是
./bjam toolset=gcc-ndk10.android.21.arm64v8a.4.9 link=static \
runtime-link=static target-os=linux --stagedir=output/arm64-v8a \
--disable-filesystem2 -sICONV_PATH=/home/weareff/local.r10/arm64-v8a/include
我user-config.jam
文件如下:
# NDK 10, android-21, arm64-v8a, 4.9,
using gcc : ndk10.android.21.arm64v8a.4.9 : /home/weareff/external/android-ndk/android-ndk-r10/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86/bin/aarch64-linux-android-gcc :
<compileflags>--sysroot=/home/weareff/external/android-ndk/android-ndk-r10/platforms/android-21/arch-arm64
<compileflags>-D_LITTLE_ENDIAN
<compileflags>-D_POSIX_THREADS=1
<compileflags>-D_POSIX_SOURCE
<compileflags>-DANDROID
<compileflags>-march=armv8-a
<compileflags>-mtune=cortex-a53
<compileflags>-fpic
<compileflags>-ffunction-sections
<compileflags>-funwind-tables
<compileflags>-fstack-protector
<compileflags>-fno-short-enums
<compileflags>-fomit-frame-pointer
<compileflags>-fno-strict-aliasing
<compileflags>-finline-limit=64
<compileflags>-Wno-psabi
<compileflags>-Os
<compileflags>-O2
<compileflags>-g
<compileflags>-I"/home/weareff/external/android-ndk/android-ndk-r10/platforms/android-21/arch-arm64/usr/include"
<compileflags>-I"/home/weareff/external/android-ndk/android-ndk-r10/platforms/android-21/arch-arm64/usr/local/include"
<compileflags>-I"/home/weareff/external/android-ndk/android-ndk-r10/sources/cxx-stl/gnu-libstdc++/4.9/include"
<compileflags>-I"/home/weareff/external/android-ndk/android-ndk-r10/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a/include"
<linkflags>-L"/home/weareff/external/android-ndk/android-ndk-r10/platforms/android-21/arch-arm64/usr/lib" -stdlib=libstdc++
<archiver>/home/weareff/external/android-ndk/android-ndk-r10/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86/bin/aarch64-linux-android-ar
;
輸出消息如下:
Performing configuration checks
- 32-bit : no
- 64-bit : yes
- arm : no
- mips1 : no
- power : no
- sparc : no
- x86 : no
- combined : no
Building the Boost C++ Libraries.
- has_icu builds : no
- lockfree boost::atomic_flag : no
Component configuration:
- atomic : not building
- chrono : not building
- container : not building
- context : not building
- coroutine : not building
- date_time : building
- exception : not building
- filesystem : building
- graph : not building
- graph_parallel : not building
- iostreams : not building
- locale : not building
- log : not building
- math : not building
- mpi : not building
- program_options : not building
- python : not building
- random : not building
- regex : building
- serialization : not building
- signals : not building
- system : building
- test : not building
- thread : building
- timer : not building
- wave : not building
...patience...
...found 1318 targets...
...updating 86 targets...
common.mkdir bin.v2/libs/date_time
common.mkdir bin.v2/libs/date_time/build
common.mkdir bin.v2/libs/date_time/build/gcc-ndk10.android.21.arm64v8a.4.9
common.mkdir bin.v2/libs/date_time/build/gcc-ndk10.android.21.arm64v8a.4.9/release
common.mkdir bin.v2/libs/date_time/build/gcc-ndk10.android.21.arm64v8a.4.9/release/link-static
common.mkdir bin.v2/libs/date_time/build/gcc-ndk10.android.21.arm64v8a.4.9/release/link-static/runtime-link-static
common.mkdir bin.v2/libs/date_time/build/gcc-ndk10.android.21.arm64v8a.4.9/release/link-static/runtime-link-static/threading-multi
common.mkdir bin.v2/libs/date_time/build/gcc-ndk10.android.21.arm64v8a.4.9/release/link-static/runtime-link-static/threading-multi/gregorian
gcc.compile.c++ bin.v2/libs/date_time/build/gcc-ndk10.android.21.arm64v8a.4.9/release/link-static/runtime-link-static/threading-multi/gregorian/greg_month.o
aarch64-linux-android-gcc: error: unrecognized command line option '-m64'
"/home/weareff/external/android-ndk/android-ndk-r10/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86/bin/aarch64-linux-android-gcc" -ftemplate-depth-128 -O3 -finline-functions -Wno-inline -Wall --sysroot=/home/weareff/external/android-ndk/android-ndk-r10/platforms/android-21/arch-arm64 -pthread -m64 -DBOOST_ALL_NO_LIB=1 -DBOOST_DATE_TIME_STATIC_LINK -DDATE_TIME_INLINE -DNDEBUG -I"." -c -o "bin.v2/libs/date_time/build/gcc-ndk10.android.21.arm64v8a.4.9/release/link-static/runtime-link-static/threading-multi/gregorian/greg_month.o" "libs/date_time/src/gregorian/greg_month.cpp"
...failed gcc.compile.c++ bin.v2/libs/date_time/build/gcc-ndk10.android.21.arm64v8a.4.9/release/link-static/runtime-link-static/threading-multi/gregorian/greg_month.o...
gcc.compile.c++ bin.v2/libs/date_time/build/gcc-ndk10.android.21.arm64v8a.4.9/release/link-static/runtime-link-static/threading-multi/gregorian/greg_weekday.o
aarch64-linux-android-gcc: error: unrecognized command line option '-m64'
但底線是什麼:它是否爲aarch64構建了IGF? –
它無法爲aarch64構建庫。所以我需要幫助。 –