это не так важно.
В общем, у меня есть проект на расте, где есть продпроект на плюсах и мне надо его кросс-компилировать в linux-aarch64.
Ставлю либы:
apt-get install gcc-multilib g++-multilib clang libc++-dev
Меняю растом таргет, добавляю флаги, т.к. мне важно использовать clang и запускаю билд:
rustup target add aarch64-unknown-linux-gnu
export CXXFLAGS=-stdlib=libc++ CC=clang CXX=clang++
cargo build --target aarch64-unknown-linux-gnu
На что оно мне говорит:
error occurred: Failed to find tool. Is `aarch64-linux-gnu-g++` installed?
Ок. Давай поставим еще и это.
apt-get install gcc-8-aarch64-linux-gnu g++-8-aarch64-linux-gnu
Но уже другая ошибка, что эти либы несовместимы.
The following packages have unmet dependencies:
gcc-8-aarch64-linux-gnu : Conflicts: gcc-multilib but 4:8.3.0-1 is to be installed
gcc-multilib : Conflicts: gcc-8-aarch64-linux-gnu but 8.3.0-2cross1 is to be installed
ну так может поставить g++-8-multilib?
Та же ошибка. error occurred: Failed to find tool. Is `aarch64-linux-gnu-g++` installed?
ну так поставь, он же у тебя из за конфликта с мультилибой походу не встал
Если ставить не мультилибу: apt-get install gcc-aarch64-linux-gnu g++-aarch64-linux-gnu rsync clang libc++-dev То при кросс-компиляции ошибка: In file included from crypto/fipsmodule/aes/aes_nohw.c:15: In file included from include/GFp/aes.h:52: In file included from include/GFp/base.h:66: In file included from /usr/lib/llvm-7/lib/clang/7.0.1/include/stdint.h:61: /usr/include/stdint.h:26:10: fatal error: 'bits/libc-header-start.h' file not found #include <bits/libc-header-start.h> ^~~~~~~~~~~~~~~~~~~~~~~~~~ 1 error generated. При обычной компиляции все работает. Так же все работает при обычной и про кросс, если не добавлять флаги: export CXXFLAGS=-stdlib=libc++ CC=clang CXX=clang++ Но мне надо их добавить т.к я хочу юзать libc++ заместо libstdc++ 🤪.
Обсуждают сегодня