在ubuntu16.04下,交叉编译arm程序 ,出现以下错误,/usr/include/x86_64-linux-gnu/bits/mathinline.h:889:3: error: unknown register name ‘st’ in ‘asm’ __lrint_code; 如何解决
时间: 2023-08-22 15:07:55 浏览: 205
这个错误是由于在使用交叉编译器编译ARM程序时,编译器会默认使用本地主机的库文件和头文件,但是这些库文件和头文件并不适用于ARM架构,因此会出现错误。
解决方法是要使用适用于ARM架构的库文件和头文件进行编译,可以通过以下步骤实现:
1. 安装适用于ARM架构的交叉编译工具链。可以使用apt-get或者手动安装。
2. 设置交叉编译工具链的环境变量。例如,如果使用arm-linux-gcc编译器,可以设置环境变量为:
```
export CC=arm-linux-gcc
export CXX=arm-linux-g++
```
3. 在编译命令中添加编译选项。例如,如果使用CMake进行编译,可以添加以下选项:
```
-DCMAKE_C_COMPILER=arm-linux-gcc -DCMAKE_CXX_COMPILER=arm-linux-g++
```
这样就可以使用适用于ARM架构的库文件和头文件进行编译,避免出现错误。
阅读全文