Compiler Explorer编译ARM架构C模块时无法找到<math.h>怎么办?
在Compiler Explorer中使用armclang编译包含<math.h>的C代码时找不到头文件的解决方法
问题描述
在Compiler Explorer上编译包含<math.h>的C模块,目标架构为ARM,但无论使用哪个版本的armclang,编译器均提示无法找到<math.h>。
代码示例:
#include <math.h>
错误信息:
<source>:1:10: fatal error: 'math.h' file not found #include <math.h> ^~~~~~~~ 1 error generated. Compiler returned: 1
解决方法
- 切换到带完整标准库的编译器版本:优先选择armclang 6.16及以上版本,这类版本预装了完整的ARM标准库,默认就能识别
<math.h>。 - 手动指定头文件路径:若切换版本后仍报错,在编译选项中添加标准库路径:
该路径是Compiler Explorer中ARM架构标准库头文件的默认存放目录,-I/usr/include/arm-linux-gnueabihf/<math.h>包含其中。 - 链接数学库(后续使用函数时需要):如果代码中调用了
<math.h>里的数学函数(如sin、sqrt),需在编译选项中添加链接参数:-lm
内容的提问来源于stack exchange,提问作者ysap
相关产品推荐
相关产品推荐

