在嵌入式系统中,我无法运行rsync:
$ rsync
/usr/bin/rsync: symbol 'poptHelpOptions': can't resolve symbol
/usr/bin/rsync: symbol '_poptBitsN': can't resolve symbol
/usr/bin/rsync: symbol '_poptArgMask': can't resolve symbol
/usr/bin/rsync: symbol '_poptBitsK': can't resolve symbol
/usr/bin/rsync: symbol '_poptBitsM': can't resolve symbol
/usr/bin/rsync: symbol 'poptAliasOptions': can't resolve symbol
/usr/bin/rsync: symbol 'poptHelpOptionsI18N': can't resolve symbol
但似乎找到了依赖关系:
$ ldd /usr/bin/rsync
libz.so.1 => /usr/lib/libz.so.1 (0x76f36000)
libpopt.so.0 => /usr/lib/libpopt.so.0 (0x76f1b000)
libc.so.1 => /lib/libc.so.1 (0x76ea2000)
libc.so.6 => /usr/lib/libc.so.6 (0x76d61000)
ld-linux-armhf.so.3 => /lib/ld-linux-armhf.so.3 (0x76d30000)
ld-uClibc.so.1 => /lib/ld-uClibc.so.0 (0x76f57000)
还有其他可能导致这些错误的东西吗? 这是armv7l上的Buildroot环境(内核4.4.8-v7)。
你让我走上了正确的轨道。我仔细检查了popt库,发现目标上安装的实际lib与交叉编译环境中的lib不同。复制最近的一个(我猜上一次构建)修复了问题。
—
Mark
.so
具有所有相同的功能。也许是更新版本或不同版本libpopt.so
(缺少函数可能存在的库)是必要的。