构建sysroot
推荐使用 Crosstool-ng 来构建 sysroot. 这里是一些配置的例子:
准备构建工具
apt-get install -y gcc g++ gperf bison flex texinfo help2man make libncurses5-dev \
python3-dev autoconf automake libtool libtool-bin gawk wget bzip2 xz-utils unzip \
patch rsync meson ninja-build
# Compile latest crosstool-ng
git clone https://github.com/crosstool-ng/crosstool-ng.git
cd crosstool-ng
./bootstrap
./configure --prefix=/crosstool-ng/out && make && make install
export PATH=$PATH:/crosstool-ng/out/bin
构建sysroot
mkdir toolchain-dir
cd toolchain-dir
cp <path-to-config-file> .config
ct-ng menuconfig # 刷新保存适合版本配置
ct-ng build
常见问题
- [ERROR] You must NOT be root to run crosstool-NG
export CT_ALLOW_BUILD_AS_ROOT_SURE=1
sysroot使用例子
VSCode SSH-Remote连接旧的linux系统
问题:VSCode新版本对linux系统kernel, glibc等版本有最低要求,参考文档。
解决办法:对于旧的系统,可以通过构建更高版本的sysroot,然后在目标系统内通过文件/etc/profile.d/vcroot.sh配置环境变量:
export VSCODE_SERVER_CUSTOM_GLIBC_LINKER=/root/workspace/toolchain-dir/x86_64-linux-gnu/x86_64-linux-gnu/sysroot/lib/ld-linux-x86-64.so.2
export VSCODE_SERVER_CUSTOM_GLIBC_PATH=/root/workspace/toolchain-dir/x86_64-linux-gnu/x86_64-linux-gnu/sysroot/lib:/root/workspace/toolchain-dir/x86_64-linux-gnu/x86_64-linux-gnu/sysroot/usr/lib
export VSCODE_SERVER_PATCHELF_PATH=/opt/patchelf/bin/patchelf
4165

被折叠的 条评论
为什么被折叠?



