Ubuntu 12.04 到 mipsel 交叉编译问题:/opt/buildroot-gcc342/bin/mipsel-linux-uclibc-ar: libsupc++.a : No such file or directory

Ununtu 12.04 to mipsel cross compile issue: /opt/buildroot-gcc342/bin/mipsel-linux-uclibc-ar: libsupc++.a : No such file or directory

我使用带有 Ubuntu12.04 的 SDK 对基于 mipsel 的板进行交叉编译。但是我的系统崩溃了,我重新安装了 ubuntu12.04 并尝试设置环境并使用 SDK 运行 make.

我对cross-compiling了解不多,所以在备份数据时我只是back-up/opt/buildroot-gcc342/文件夹,里面有交叉编译器,库,包括 SDK 所需的 header。

所以现在我期待在 /opt/buildroot-gcc342/ 设置和更新 Ubuntu12.04 之后一切正常,但是 SDK 在 linking to libsupc++.a in uClibc++ make 时出错时间.

详细错误在这里:

root@HOME_PC:/home/Documents/mips_sdk/source# make
make[1]: Entering directory `/home/Documents/mips_sdk/source/uClibc++'
for dir in bin include src ; do \
        make -C $dir all; \
    done
make[2]: Entering directory `/home/Documents/mips_sdk/source/uClibc++/bin'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/home/Documents/mips_sdk/source/uClibc++/bin'
make[2]: Entering directory `/home/Documents/mips_sdk/source/uClibc++/include'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/home/Documents/mips_sdk/source/uClibc++/include'
make[2]: Entering directory `/home/Documents/mips_sdk/source/uClibc++/src'
make -C abi/libsupc all
make[3]: Entering directory `/home/Documents/mips_sdk/source/uClibc++/src/abi/libsupc'
"/opt/buildroot-gcc342/bin"/mipsel-linux-uclibc-ar x libsupc++.a
/opt/buildroot-gcc342/bin/mipsel-linux-uclibc-ar: libsupc++.a: No such file or directory
make[3]: *** [libsupc] Error 9
make[3]: Leaving directory `/home/Documents/mips_sdk/source/uClibc++/src/abi/libsupc'
make[2]: *** [libsupc] Error 2
make[2]: Leaving directory `/home/Documents/mips_sdk/source/uClibc++/src'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/home/Documents/mips_sdk/source/uClibc++'
make: *** [uClibc++_only] Error 2
root@HOME_PC:/home/Documents/mips_sdk/source# 

我通常使用 tar zip 文件夹,它可以与旧的 Ubuntu 安装一起使用,所以这也是一个 untar 源,应该没问题,我我失踪应该在 Ubuntu 12.04.

环境变量或库路径的更多设置?? 任何人都知道我错过了什么?

libsupc++.a 文件位于 /opt/buildroot-gcc342/lib/ 文件夹中,但似乎 linker 无法获取此路径。我试过设置:

导出CONFIG_LIBDIR=/opt/buildroot-gcc342/lib:$CONFIG_LIBDIR

但运气不好。

我也尝试过 link 在 uClibc++ 中使用这个库,但是这个错误出现了,还有一些其他错误。

有人可以帮忙吗?

提前致谢。

最后我一个人解决了这个问题。我提到的解决方案对我有用,可能对其他人有帮助。我发现 uClibc++ 中的这个链接错误很常见,如果你只是 google 它但我发现建议的许多技巧没有逻辑意义。但我得到了一些合乎逻辑的解释和解决方案,至少对我自己有用......所以问题是,在备份系统时我使用了 "cp -r directory" 和 rsync 但这两者都不太适合备份 SDK,就是这样我现在意识到,我强烈建议使用 tar 进行任何备份。 tar 是备份 SDK 时应该采用的唯一方法,因为它会将您的所有链接按原样存档在压缩文件夹中,这在 Linux 中进行备份时最为重要。 ls -l to uClibc++ 得到它使用很少的链接,这给出了这个链接错误。我的 SDK 源来自 tar,但我对 /opt/buildroot-gcc342 的备份是 cp -r 和 rsycn,所以那里的链接都没有。最后我得到了 /opt/,SDK 来自 tar,我使用 ls -l 的检查显示这个文件夹中有很多链接,这些链接工作正常,没有任何错误,就像我的旧 linux 设置一样。