Q:ld链接railcar的时候报错找不到libseccomp
libseccomp.so(lib secure computing mode.shared object)
- 属性:The libseccomp library provides an easy to use, platform independent, interface to the Linux Kernel's syscall filtering mechanism。
- 依赖:libseccomp->libseccomp2->libc6,其中libc6是GNU C的动态链接库,从属于glibc(GNU C/linux的重要组件),随系统安装。
- apt install libseccomp:关键创建了如下几个文件
- /lib/架构/libseccomp.so.2.4.1(数字后缀为版本)
- /lib/架构/libseccomp.so.2-->/lib/libseccomp.so.2.4.1(软链接)
- /usr/lib/架构/libseccomp.so-->/lib/seccomp.so.2.4.1(软链接)
ld
- 在指定了linker="arrch64-linux-gnu-gcc"之后ld会在如下几个文件夹中搜索libseccomp.so(忽略libseccomp.so.2.4.1等so)
- /usr/local/lib/aarch64-linux-gnu
- /lib/aarch64-linux-gnu
- /usr/lib/aarch64-linux-gnu
- 非交叉编译环境下正常ld的搜索路径,可以看到随()架构区分
- /usr/local/lib/x86_64-linux-gnu
- /lib/x86_64-linux-gnu
- /usr/lib/x86_64-linux-gnu
交叉编译包
- 和交叉编译相关的包有两类
- toolchain,如g++-8-aarch64-linux-gnu,组成成分为交叉编译相关的二进制工具
- lib-cross,如libc6-arm64-cross,组成成分为arm64下的libc6
- 所以着重调查lib-cross有关的包,官网上查找了多个包的list of files后并没有发现libseccomp的踪迹
结论
考虑到libseccomp.so在libc6这种关键的依赖库之上,是系统调用的封装,并且默认系统也是没有安装libseccomp,所以大概率目前源里面并没有包含libseccomp:arm64的包,如目前源里没有vim:arm64这类软件,还是需要通过指定arm64源来下载。
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
网友评论