opencv交叉编译,GCC: libgcc的用途以及交叉编译

 2023-09-23 阅读 14 评论 0

摘要:libgcc是GCC的一部分。C语言不仅仅是由编译器构成,还包括了一个标准库。编译器在GCC包里,标准库则位于GNU C库里,即glibc包里。C编译器(cc1)肯定是要以来glibc库才能正常运行。 opencv交叉编译,但是编译器本身还使用了一个内部库,

libgcc是GCC的一部分。C语言不仅仅是由编译器构成,还包括了一个标准库。编译器在GCC包里,标准库则位于GNU C库里,即glibc包里。C编译器(cc1)肯定是要以来glibc库才能正常运行。

opencv交叉编译,但是编译器本身还使用了一个内部库,名为libgcc,这个库位于GCC包里,并不属于GNU C库。这个库实现了一些复杂指令,这些指令并不能由汇编器指令集提供,因此补充了汇编器的不足。但是这个libgcc库也需要链接到glibc库才能完全运行。
注:GNU的标准C++库(libstdc++)也需要链接到glibc库。

这样在交叉编译时就产生了一个“鸡与蛋”的问题。我们需要编译器来编译glibc,但是编译器又依赖glibc才能运行。解决办法如下:
1)首先编译一个 “降级C/C++编译器”,这个降级编译器使用libgcc,但是缺少了一些功能,例如线程支持与异常处理。
2)然后使用这个降级编译器编译glibc,glibc不降级,功能完备。
3)然后编译libstdc++库,但是这个C++也是降级的。

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/3/91214.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息