/usr/bin/aarch64-linux-gnu-as:無効なオプション - 'B'

/usr/bin/aarch64-linux-gnu-as:無効なオプション - 'B'

これをクロスコンパイルしようとしています。パスワードaarch64コンパイラを使用すると、次のエラーが発生します。

/usr/bin/aarch64-linux-gnu-as: invalid option -- 'B'
make[2]: *** [third_party/boringssl-with-bazel/CMakeFiles/crypto.dir/build.make:63: third_party/boringssl-with-bazel/CMakeFiles/crypto.dir/linux-aarch64/crypto/chacha/chacha-armv8.S.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:3931: third_party/boringssl-with-bazel/CMakeFiles/crypto.dir/all] Error 2
make: *** [Makefile:130: all] Error 2

build.makeファイルの63行目は次のとおりです。

cd /home/a/Documents/third_party/grpc/build_arm/third_party/boringssl-with-bazel && /usr/bin/aarch64-linux-gnu-as $(ASM_DEFINES) $(ASM_INCLUDES) $(ASM_FLAGS) -o CMakeFiles/crypto.dir/linux-aarch64/crypto/chacha/chacha-armv8.S.o -c /home/a/Documents/third_party/grpc/third_party/boringssl-with-bazel/linux-aarch64/crypto/chacha/chacha-armv8.S

私のtoolchain.cmakeは次のようになります。

set(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_SYSTEM_PROCESSOR aarch64)
set(TARGET_ABI "linux-gnu")
# specify the cross compiler
SET(CMAKE_C_COMPILER   aarch64-${TARGET_ABI}-gcc)
SET(CMAKE_CXX_COMPILER aarch64-${TARGET_ABI}-g++)

# To build the tests, we need to set where the target environment containing
# the required library is. On Debian-like systems, this is
# /usr/aarch64-linux-gnu.
SET(CMAKE_FIND_ROOT_PATH "/usr/aarch64-${TARGET_ABI}")
# search for programs in the build host directories
SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
# for libraries and headers in the target directories
SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)

# Set additional variables.
# If we don't set some of these, CMake will end up using the host version.
# We want the full path, however, so we can pass EXISTS and other checks in
# the our CMake code.
find_program(GCC_FULL_PATH aarch64-${TARGET_ABI}-gcc)
if (NOT GCC_FULL_PATH)
  message(FATAL_ERROR "Cross-compiler aarch64-${TARGET_ABI}-gcc not found")
endif ()
get_filename_component(GCC_DIR ${GCC_FULL_PATH} PATH)
SET(CMAKE_LINKER       ${GCC_DIR}/aarch64-${TARGET_ABI}-ld      CACHE FILEPATH "linker")
SET(CMAKE_ASM_COMPILER ${GCC_DIR}/aarch64-${TARGET_ABI}-as      CACHE FILEPATH "assembler")
SET(CMAKE_OBJCOPY      ${GCC_DIR}/aarch64-${TARGET_ABI}-objcopy CACHE FILEPATH "objcopy")
SET(CMAKE_STRIP        ${GCC_DIR}/aarch64-${TARGET_ABI}-strip   CACHE FILEPATH "strip")
SET(CMAKE_CPP          ${GCC_DIR}/aarch64-${TARGET_ABI}-cpp     CACHE FILEPATH "cpp")

このエラーは何ですか?

ベストアンサー1

コンパイラがそれを見つけることができないときas

出力を実行して分析してstrace g++見つけました。

asターゲットプラットフォーム(例:arm)を実行できますか?

おすすめ記事