我使用SDK与Ubuntu12.04交叉编译基于mipsel的主板。但我的系统崩溃了,我重新安装了ubuntu12.04并尝试设置环境并使用SDK来运行make。
我对交叉编译知之甚少,所以在备份数据时我只备份 / opt / buildroot-gcc342 / 文件夹,该文件夹有交叉编译器,库,包括所需的头文件SDK。
所以现在我希望在/ opt / buildroot-gcc342 / setup和更新Ubuntu12.04之后一切正常都可以正常工作但是SDK在链接到libsupc ++时会出错。在uClibc ++中有时间。
详细错误在这里:
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安装,所以这也是解决方案,应该没问题,我缺少的东西应该在Ubuntu 12.04中。
环境变量或更多设置到库路径?? 任何人都知道我失踪了什么?
libsupc ++。文件位于/ opt / buildroot-gcc342 / lib /文件夹中,但似乎链接器无法获取此路径。我尝试过设置:
导出CONFIG_LIBDIR = / opt / buildroot-gcc342 / lib:$ CONFIG_LIBDIR
但没有运气。
我还尝试在uClibc ++中链接这个库,但是这个错误还会发生一些其他的错误。
有人可以帮忙吗?
提前致谢。
答案 0 :(得分:1)
最后,我自己解决了这个问题。我提到的解决方案对我有用,可以帮助别人。我发现uClibc ++中的这个链接错误很常见,如果你只是google它,但我发现许多技巧建议没有逻辑意义。但是我得到了一些逻辑解释和解决方案,至少对我自己有用......所以问题是,在备份系统的时候我使用了" cp -r directory"和rsync但这两者都不是很好的备份SDK,这是我现在意识到的,我强烈建议使用tar甚至任何备份。 tar是备份SDK时应该采用的唯一方法,因为它将压缩文件夹中的所有链接按原样归档,这在Linux中进行备份时最为重要。 ls -l到uClibc ++得到它使用很少的链接,这给出了这个链接错误。我的SDK源代码来自tar,但我备份的/ opt / buildroot-gcc342是cp -r和rsycn所以链接都没有。最后我从tar获得了/ opt /,SDK,并且使用ls -l检查我的检查显示这个文件夹中有很多链接可以正常工作,没有任何错误,因为我的旧Linux设置。