Tencent / mars

Mars is a cross-platform network component developed by WeChat.
Other
17.26k stars 3.63k forks source link

急急急 求助!!! Mac Android ndkr16本地编译 armeabi 报错 #1083

Closed pengyucui closed 1 year ago

pengyucui commented 1 year ago

编译环境

ndkr20 master 可以正常编译但是需要 armeabi 文件所以使用 ndkr16 但是报错 如下:

╰─ python2 build_android.py
Enter menu:
1. Clean && build mars.
2. Build incrementally mars.
3. Clean && build xlog.
4. Exit
3
ndk path:/Users/cuipengyu/Library/Android/sdk/ndk/android-ndk-r16b
[[==BUILD_DESCRIPTION==]]Revision: 25e60c59 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<style type="text/css">.description table {    margin: 10px 0 15px 0;    border-collapse: collapse;    font-family: Helvetica, "Hiragino Sans GB", Arial, sans-serif;    font-size: 11px;    line-height: 16px;    color: #737373;    background-color: white;    margin: 10px 12px 10px 12px;}.description td,th { border: 1px solid #ddd; padding: 3px 10px; }.description th { padding: 5px 10px; }.description a { color: #0069d6; }.description a:hover { color: #0050a3; text-decoration: none; }.description h5 { font-size: 14px; }</style><div class="description"><h5>PublicComponent</h5><table><thead><tr><th align="left">KEY</th><th align="left">VALUE</th></tr></thead><tr><td align="left">Branch</td><td align="left">master</td></tr><tr><td align="left">BuildTag</td><td align="left"></td></tr><tr><td align="left">BuildTime</td><td align="left">2022-11-09 11:08:08</td></tr><tr><td align="left">Revision</td><td align="left">25e60c59</td></tr></table></div>
build cmd:cmake "/Users/cuipengyu/XX/mars/mars"  -DANDROID_ABI="armeabi-v7a" -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE=/Users/cuipengyu/Library/Android/sdk/ndk/android-ndk-r16b/build/cmake/android.toolchain.cmake -DANDROID_TOOLCHAIN=clang -DANDROID_NDK=/Users/cuipengyu/Library/Android/sdk/ndk/android-ndk-r16b -DANDROID_PLATFORM=android-21 -DANDROID_STL="c++_shared" && cmake --build . --target libzstd_static marsxlog --config Release -- -j8
-- CMAKE_INSTALL_PREFIX=/Users/cuipengyu/XX/mars/mars/cmake_build/Android
-- CMAKE_INSTALL_PREFIX=/Users/cuipengyu/XXmars/mars/cmake_build/Android
CMake Warning at /Users/cuipengyu/Library/Android/sdk/ndk/android-ndk-r16b/build/cmake/android.toolchain.cmake:63 (message):
  Using custom NDK path (ANDROID_NDK is set):
  /Users/cuipengyu/Library/Android/sdk/ndk/android-ndk-r16b
Call Stack (most recent call first):
  /Applications/CMake.app/Contents/share/cmake-3.25/Modules/CMakeDetermineSystem.cmake:124 (include)
  comm/CMakeLists.txt:6 (project)

-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /Users/cuipengyu/Library/Android/sdk/ndk/android-ndk-r16b/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /Users/cuipengyu/Library/Android/sdk/ndk/android-ndk-r16b/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- ==============config comm====================
-- CMAKE_INSTALL_PREFIX=/Users/cuipengyu/XX/mars/mars/cmake_build/Android
CMake Warning at /Users/cuipengyu/Library/Android/sdk/ndk/android-ndk-r16b/build/cmake/android.toolchain.cmake:63 (message):
  Using custom NDK path (ANDROID_NDK is set):
  /Users/cuipengyu/Library/Android/sdk/ndk/android-ndk-r16b
Call Stack (most recent call first):
  cmake_build/Android/CMakeFiles/3.25.0-rc3/CMakeSystem.cmake:6 (include)
  boost/CMakeLists.txt:6 (project)

-- ==============config mars-boost====================
-- The ASM compiler identification is Clang with GNU-like command-line
-- Found assembler: /Users/cuipengyu/Library/Android/sdk/ndk/android-ndk-r16b/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang
-- CMAKE_INSTALL_PREFIX=/Users/cuipengyu/XX/mars/mars/cmake_build/Android
CMake Warning at /Users/cuipengyu/Library/Android/sdk/ndk/android-ndk-r16b/build/cmake/android.toolchain.cmake:63 (message):
  Using custom NDK path (ANDROID_NDK is set):
  /Users/cuipengyu/Library/Android/sdk/ndk/android-ndk-r16b
Call Stack (most recent call first):
  cmake_build/Android/CMakeFiles/3.25.0-rc3/CMakeSystem.cmake:6 (include)
  app/CMakeLists.txt:6 (project)

-- ==============config app====================
-- CMAKE_INSTALL_PREFIX=/Users/cuipengyu/XX/mars/mars/cmake_build/Android
CMake Warning at /Users/cuipengyu/Library/Android/sdk/ndk/android-ndk-r16b/build/cmake/android.toolchain.cmake:63 (message):
  Using custom NDK path (ANDROID_NDK is set):
  /Users/cuipengyu/Library/Android/sdk/ndk/android-ndk-r16b
Call Stack (most recent call first):
  cmake_build/Android/CMakeFiles/3.25.0-rc3/CMakeSystem.cmake:6 (include)
  baseevent/CMakeLists.txt:6 (project)

-- ==============config baseevent====================
-- CMAKE_INSTALL_PREFIX=/Users/cuipengyu/XX/mars/mars/cmake_build/Android
CMake Warning at /Users/cuipengyu/Library/Android/sdk/ndk/android-ndk-r16b/build/cmake/android.toolchain.cmake:63 (message):
  Using custom NDK path (ANDROID_NDK is set):
  /Users/cuipengyu/Library/Android/sdk/ndk/android-ndk-r16b
Call Stack (most recent call first):
  cmake_build/Android/CMakeFiles/3.25.0-rc3/CMakeSystem.cmake:6 (include)
  log/CMakeLists.txt:6 (project)

-- ==============config xlog====================
-- CMAKE_INSTALL_PREFIX=/Users/cuipengyu/XX/mars/mars/cmake_build/Android
CMake Warning at /Users/cuipengyu/Library/Android/sdk/ndk/android-ndk-r16b/build/cmake/android.toolchain.cmake:63 (message):
  Using custom NDK path (ANDROID_NDK is set):
  /Users/cuipengyu/Library/Android/sdk/ndk/android-ndk-r16b
Call Stack (most recent call first):
  cmake_build/Android/CMakeFiles/3.25.0-rc3/CMakeSystem.cmake:6 (include)
  sdt/CMakeLists.txt:6 (project)

-- ==============config sdt====================
-- CMAKE_INSTALL_PREFIX=/Users/cuipengyu/XX/mars/mars/cmake_build/Android
CMake Warning at /Users/cuipengyu/Library/Android/sdk/ndk/android-ndk-r16b/build/cmake/android.toolchain.cmake:63 (message):
  Using custom NDK path (ANDROID_NDK is set):
  /Users/cuipengyu/Library/Android/sdk/ndk/android-ndk-r16b
Call Stack (most recent call first):
  cmake_build/Android/CMakeFiles/3.25.0-rc3/CMakeSystem.cmake:6 (include)
  stn/CMakeLists.txt:7 (project)

-- ==============config stn====================
CMake Warning (dev) at /Applications/CMake.app/Contents/share/cmake-3.25/Modules/GNUInstallDirs.cmake:243 (message):
  Unable to determine default CMAKE_INSTALL_LIBDIR directory because no
  target architecture is known.  Please enable at least one language before
  including GNUInstallDirs.
Call Stack (most recent call first):
  CMakeLists.txt:21 (include)
This warning is for project developers.  Use -Wno-dev to suppress it.

CMake Warning at /Users/cuipengyu/Library/Android/sdk/ndk/android-ndk-r16b/build/cmake/android.toolchain.cmake:63 (message):
  Using custom NDK path (ANDROID_NDK is set):
  /Users/cuipengyu/Library/Android/sdk/ndk/android-ndk-r16b
Call Stack (most recent call first):
  cmake_build/Android/CMakeFiles/3.25.0-rc3/CMakeSystem.cmake:6 (include)
  zstd/build/cmake/lib/CMakeLists.txt:10 (project)

CMake Warning at /Users/cuipengyu/Library/Android/sdk/ndk/android-ndk-r16b/build/cmake/android.toolchain.cmake:63 (message):
  Using custom NDK path (ANDROID_NDK is set):
  /Users/cuipengyu/Library/Android/sdk/ndk/android-ndk-r16b
Call Stack (most recent call first):
  cmake_build/Android/CMakeFiles/3.25.0-rc3/CMakeSystem.cmake:6 (include)
  CMakeLists.txt:24 (project)

-- ==============config mars====================
-- Configuring done
-- Generating done
-- Build files have been written to: /Users/cuipengyu/XX/mars/mars/cmake_build/Android
[  6%] Building C object zstd/CMakeFiles/libzstd_static.dir/__/__/__/lib/common/entropy_common.c.o
[  6%] Building C object zstd/CMakeFiles/libzstd_static.dir/__/__/__/lib/common/debug.c.o
[ 12%] Building C object zstd/CMakeFiles/libzstd_static.dir/__/__/__/lib/common/error_private.c.o
[ 12%] Building C object zstd/CMakeFiles/libzstd_static.dir/__/__/__/lib/common/fse_decompress.c.o
[ 25%] Building C object zstd/CMakeFiles/libzstd_static.dir/__/__/__/lib/common/threading.c.o
[ 25%] Building C object zstd/CMakeFiles/libzstd_static.dir/__/__/__/lib/common/pool.c.o
[ 25%] Building C object zstd/CMakeFiles/libzstd_static.dir/__/__/__/lib/common/xxhash.c.o
[ 25%] Building C object zstd/CMakeFiles/libzstd_static.dir/__/__/__/lib/common/zstd_common.c.o
[ 31%] Building C object zstd/CMakeFiles/libzstd_static.dir/__/__/__/lib/compress/fse_compress.c.o
[ 31%] Building C object zstd/CMakeFiles/libzstd_static.dir/__/__/__/lib/compress/hist.c.o
[ 37%] Building C object zstd/CMakeFiles/libzstd_static.dir/__/__/__/lib/compress/huf_compress.c.o
[ 37%] Building C object zstd/CMakeFiles/libzstd_static.dir/__/__/__/lib/compress/zstd_compress.c.o
[ 43%] Building C object zstd/CMakeFiles/libzstd_static.dir/__/__/__/lib/compress/zstd_compress_literals.c.o
[ 43%] Building C object zstd/CMakeFiles/libzstd_static.dir/__/__/__/lib/compress/zstd_compress_sequences.c.o
[ 50%] Building C object zstd/CMakeFiles/libzstd_static.dir/__/__/__/lib/compress/zstd_double_fast.c.o
[ 50%] Building C object zstd/CMakeFiles/libzstd_static.dir/__/__/__/lib/compress/zstd_fast.c.o
[ 56%] Building C object zstd/CMakeFiles/libzstd_static.dir/__/__/__/lib/compress/zstd_lazy.c.o
[ 56%] Building C object zstd/CMakeFiles/libzstd_static.dir/__/__/__/lib/compress/zstd_ldm.c.o
[ 62%] Building C object zstd/CMakeFiles/libzstd_static.dir/__/__/__/lib/compress/zstd_opt.c.o
[ 62%] Building C object zstd/CMakeFiles/libzstd_static.dir/__/__/__/lib/compress/zstdmt_compress.c.o
[ 68%] Building C object zstd/CMakeFiles/libzstd_static.dir/__/__/__/lib/decompress/huf_decompress.c.o
[ 68%] Building C object zstd/CMakeFiles/libzstd_static.dir/__/__/__/lib/decompress/zstd_ddict.c.o
[ 75%] Building C object zstd/CMakeFiles/libzstd_static.dir/__/__/__/lib/decompress/zstd_decompress.c.o
[ 75%] Building C object zstd/CMakeFiles/libzstd_static.dir/__/__/__/lib/decompress/zstd_decompress_block.c.o
[ 81%] Building C object zstd/CMakeFiles/libzstd_static.dir/__/__/__/lib/dictBuilder/cover.c.o
[ 81%] Building C object zstd/CMakeFiles/libzstd_static.dir/__/__/__/lib/dictBuilder/divsufsort.c.o
[ 87%] Building C object zstd/CMakeFiles/libzstd_static.dir/__/__/__/lib/dictBuilder/fastcover.c.o
[ 87%] Building C object zstd/CMakeFiles/libzstd_static.dir/__/__/__/lib/dictBuilder/zdict.c.o
[ 93%] Building C object zstd/CMakeFiles/libzstd_static.dir/__/__/__/lib/deprecated/zbuff_common.c.o
[ 93%] Building C object zstd/CMakeFiles/libzstd_static.dir/__/__/__/lib/deprecated/zbuff_compress.c.o
[100%] Building C object zstd/CMakeFiles/libzstd_static.dir/__/__/__/lib/deprecated/zbuff_decompress.c.o
[100%] Linking C static library libzstd.a
[100%] Built target libzstd_static
[  0%] Building CXX object xlog/CMakeFiles/xlog.dir/src/formater.cc.o
[  2%] Building CXX object xlog/CMakeFiles/xlog.dir/src/appender.cc.o
[  2%] Building CXX object xlog/CMakeFiles/xlog.dir/src/log_zstd_buffer.cc.o
[  4%] Building CXX object xlog/CMakeFiles/xlog.dir/src/log_zlib_buffer.cc.o
[  4%] Building CXX object xlog/CMakeFiles/xlog.dir/src/log_base_buffer.cc.o
[  5%] Building CXX object boost/CMakeFiles/mars-boost.dir/libs/atomic/src/lockpool.cpp.o
[  5%] Building C object comm/CMakeFiles/comm.dir/adler32.c.o
[ 28%] Built target libzstd_static
errorerror: : unknownunknown  warningwarning  optionoption  '-Werror=tautological-unsigned-zero-compare''-Werror=tautological-unsigned-zero-compare'

      [-Werror,-Wunknown-warning-option]
      [-Werror,-Wunknown-warning-option]
error: unknown warning option '-Werror=tautological-type-limit-compare'
      [-Werror,-Wunknown-warning-option]
error: unknown warning option '-Werror=tautological-type-limit-compare'
      [-Werror,-Wunknown-warning-option]
error: unknown warning option '-Werror=tautological-unsigned-zero-compare'
      [-Werror,-Wunknown-warning-option]
[ 28%] Building CXX object xlog/CMakeFiles/xlog.dir/src/xlogger_interface.cc.o
error: unknown warning option '-Werror=tautological-type-limit-compare'
      [-Werror,-Wunknown-warning-option]
error: unknown warning option '-Werror=tautological-unsigned-zero-compare'
      [-Werror,-Wunknown-warning-option]
error: unknown warning option '-Werror=tautological-type-limit-compare'
      [-Werror,-Wunknown-warning-option]
make[3]: *** [xlog/CMakeFiles/xlog.dir/src/formater.cc.o] Error 1
make[3]: *** Waiting for unfinished jobs....
make[3]: *** [xlog/CMakeFiles/xlog.dir/src/log_zlib_buffer.cc.o] Error 1
make[3]: *** [xlog/CMakeFiles/xlog.dir/src/log_zstd_buffer.cc.o] Error 1
make[3]: *** [xlog/CMakeFiles/xlog.dir/src/log_base_buffer.cc.o] Error 1
error: unknown warning option '-Werror=tautological-unsigned-zero-compare'
      [-Werror,-Wunknown-warning-option]
error: unknown warning option '-Werror=tautological-unsigned-zero-compare'
      [-Werror,-Wunknown-warning-option]
error: unknown warning option '-Werror=tautological-type-limit-compare'
      [-Werror,-Wunknown-warning-option]
error: unknown warning option '-Werror=tautological-type-limit-compare'
      [-Werror,-Wunknown-warning-option]
make[3]: *** [comm/CMakeFiles/comm.dir/adler32.c.o] Error 1
make[3]: *** Waiting for unfinished jobs....
make[3]: *** [xlog/CMakeFiles/xlog.dir/src/appender.cc.o] Error 1
[ 28%] Building CXX object boost/CMakeFiles/mars-boost.dir/libs/date_time/src/gregorian/date_generators.cpp.o
[ 30%] Building CXX object boost/CMakeFiles/mars-boost.dir/libs/date_time/src/gregorian/gregorian_types.cpp.o
[ 31%] Building CXX object comm/CMakeFiles/comm.dir/alarm.cc.o
[ 31%] Building CXX object comm/CMakeFiles/comm.dir/anr.cc.o
[ 31%] Building CXX object boost/CMakeFiles/mars-boost.dir/libs/date_time/src/gregorian/greg_month.cpp.o
[ 33%] Building CXX object boost/CMakeFiles/mars-boost.dir/libs/date_time/src/gregorian/greg_weekday.cpp.o
error: unknown warning option '-Werror=tautological-unsigned-zero-compare'
      [-Werror,-Wunknown-warning-option]
error: unknown warning option '-Werror=tautological-type-limit-compare'
      [-Werror,-Wunknown-warning-option]
make[3]: *** [xlog/CMakeFiles/xlog.dir/src/xlogger_interface.cc.o] Error 1
make[2]: *** [xlog/CMakeFiles/xlog.dir/all] Error 2
make[2]: *** Waiting for unfinished jobs....
error: unknown warning option '-Werror=tautological-unsigned-zero-compare'
      [-Werror,-Wunknown-warning-option]
error: unknown warning option '-Werror=tautological-type-limit-compare'
      [-Werror,-Wunknown-warning-option]
error: unknown warning option '-Werror=tautological-unsigned-zero-compare'
      [-Werror,-Wunknown-warning-option]
error: unknown warning option '-Werror=tautological-type-limit-compare'
      [-Werror,-Wunknown-warning-option]
make[3]: *** [comm/CMakeFiles/comm.dir/anr.cc.o] Error 1
[ 33%] Building CXX object boost/CMakeFiles/mars-boost.dir/libs/date_time/src/posix_time/posix_time_types.cpp.o
make[3]: *** [comm/CMakeFiles/comm.dir/alarm.cc.o] Error 1
make[2]: *** [comm/CMakeFiles/comm.dir/all] Error 2
[ 34%] Building CXX object boost/CMakeFiles/mars-boost.dir/libs/exception/src/clone_current_exception_non_intrusive.cpp.o
[ 34%] Building CXX object boost/CMakeFiles/mars-boost.dir/libs/filesystem/src/codecvt_error_category.cpp.o
[ 36%] Building CXX object boost/CMakeFiles/mars-boost.dir/libs/filesystem/src/operations.cpp.o
[ 36%] Building CXX object boost/CMakeFiles/mars-boost.dir/libs/filesystem/src/path.cpp.o
[ 37%] Building CXX object boost/CMakeFiles/mars-boost.dir/libs/filesystem/src/path_traits.cpp.o
[ 37%] Building CXX object boost/CMakeFiles/mars-boost.dir/libs/filesystem/src/portability.cpp.o
[ 39%] Building CXX object boost/CMakeFiles/mars-boost.dir/libs/filesystem/src/unique_path.cpp.o
[ 39%] Building CXX object boost/CMakeFiles/mars-boost.dir/libs/filesystem/src/utf8_codecvt_facet.cpp.o
[ 40%] Building CXX object boost/CMakeFiles/mars-boost.dir/libs/filesystem/src/windows_file_codecvt.cpp.o
[ 40%] Building CXX object boost/CMakeFiles/mars-boost.dir/libs/iostreams/src/file_descriptor.cpp.o
[ 42%] Building CXX object boost/CMakeFiles/mars-boost.dir/libs/iostreams/src/mapped_file.cpp.o
[ 42%] Building CXX object boost/CMakeFiles/mars-boost.dir/libs/smart_ptr/src/sp_collector.cpp.o
[ 43%] Building CXX object boost/CMakeFiles/mars-boost.dir/libs/smart_ptr/src/sp_debug_hooks.cpp.o
[ 43%] Building CXX object boost/CMakeFiles/mars-boost.dir/libs/system/src/error_code.cpp.o
[ 44%] Building CXX object boost/CMakeFiles/mars-boost.dir/libs/thread/src/future.cpp.o
[ 44%] Building CXX object boost/CMakeFiles/mars-boost.dir/libs/context/src/execution_context.cpp.o
[ 46%] Building CXX object boost/CMakeFiles/mars-boost.dir/libs/context/src/posix/stack_traits.cpp.o
[ 46%] Building CXX object boost/CMakeFiles/mars-boost.dir/libs/coroutine/src/detail/coroutine_context.cpp.o
[ 47%] Building CXX object boost/CMakeFiles/mars-boost.dir/libs/coroutine/src/exceptions.cpp.o
[ 47%] Building CXX object boost/CMakeFiles/mars-boost.dir/libs/coroutine/src/posix/stack_traits.cpp.o
[ 49%] Building ASM object boost/CMakeFiles/mars-boost.dir/libs/context/src/asm/jump_arm_aapcs_elf_gas.S.o
[ 49%] Building ASM object boost/CMakeFiles/mars-boost.dir/libs/context/src/asm/make_arm_aapcs_elf_gas.S.o
[ 50%] Linking CXX static library libmars-boost.a
[ 50%] Built target mars-boost
make[1]: *** [CMakeFiles/marsxlog.dir/rule] Error 2
make: *** [marsxlog] Error 2
!!!!!!!!!!!!!!!!!!build fail!!!!!!!!!!!!!!!!!!!!

master 代码 只针对 build_android.py文件的 构架做如下修改

archs = {'armeabi','armeabi-v7a'}
pengyucui commented 1 year ago

@garryyan 求助帮看下 谢谢

garryyan commented 1 year ago

我们很早就已经不支持 armeabi 架构了,如果用在手机上armeabi-v7a当做 armeabi 架构用一般没啥问题

garryyan commented 1 year ago

单看你的编译错误,修改 CMakeExtraFlags.txt中的不支持的编译选项去掉试试,-Wno-error=tautological-unsigned-zero-compare

pengyucui commented 1 year ago

我们很早就已经不支持 armeabi 架构了,如果用在手机上armeabi-v7a当做 armeabi 架构用一般没啥问题

这个主要有一些老用户没有办法

pengyucui commented 1 year ago

单看你的编译错误,修改 CMakeExtraFlags.txt中的不支持的编译选项去掉试试,-Wno-error=tautological-unsigned-zero-compare

这个 方法我试了下 还是基本同样的报错 。但是我用develop的分支可以编译过 。虽然没有解决但是还是非常感谢你的回复 @garryyan