交叉编译

一.为什么要交叉编译

有一个imx6ull板,需要将一个程序下载进去,让其运行起来。如果直接用本地系统的编译器来编译的话,程序有可能编译出错,或者编译成功不能正常运行,所以需要用官方指定的编译工具来做交叉编译。

二.怎么使用交叉编译

2.1导出编译工具链到环境变量

a.在Ubuntu里下载了一个目标SDK工具链在以下目录:
image


b.用export命令把这个编译工具链导出到环境变量:
export PATH="/home/shared/shihui/001_platform_sdk/001_bes/gcc_tool_chain/gcc-arm-none-eabi-10.3-2021.10/bin:$PATH"

c.这样这个终端的子进程(比如 make、cmake)都能优先读取这个新的PATH去编译。

使用“echo $PAHT”命令,可以看到当前终端“gcc-arm-none-eabi-10.3-2021.10”的优先级最高。

image

2.2使用方法

参考当时的一个调试代码的makefile

点击查看代码
#指定使用系统环境变量CROSS_COMPILE定义的编译器。CROSS_COMPILE变量(如果有定义的话)后跟 gcc
GCC = $(CROSS_COMPILE)gcc

TARGET = test

LDFLAGS = -lm -lsndfile -lstdc++

SRC = $(wildcard *.cpp)
OBJ = $(patsubst %.cpp, %.o, $(SRC))

$(TARGET): $(SRC)
	$(GCC) -o $@ $^ $(LDFLAGS)
# = $(GCC) -o $(TARGET) $(OBJ) $(LDFLAGS)

clean:
		rm -f *.o $(TARGET)

三.关于交叉编译的命令 env | grep CROSS_COMPILE ---查看环境变量定义的交叉编译工具链 ![](https://img2024.cnblogs.com/blog/3169038/202409/3169038-20240907131325012-1689683008.png)

which gcc ----查看系统使用的gcc位置

env ---查看环境变量

posted @ 2024-09-07 13:19  自由的Charles  阅读(70)  评论(0)    收藏  举报