这个连接问题是由于将两个使用不同编译器编译出的目标文件连接到一起而导致的,原因经常是因为没有在所有的Makefile中统一使用$(CC)代表编译器
/* 是否相等 */
ifeq (
$
(
PLATFORM)
,
目标硬件平台)
export
CROSS_COMPILE :
=
编译器前缀
endif
export
CC:
=
$(
CROSS_COMPILE)
gcc /* 编译器 */
export
AR:
=
$(
CROSS_COMPILE)
ar /* 生成.a文件 */
export
AS:
=
$(
CROSS_COMPILE)
as /* 汇编器 */
export
LD:
=
$(
CROSS_COMPILE)
ld /* 连接器 */
export
NM:
=
$(
CROSS_COMPILE)
nm /* */
export
RANLIB:
=
$(
CROSS_COMPILE)
ranlib /* */
export
STRIP:
=
$(
CROSS_COMPILE)
strip /* 优化目标文件大小 */
export
SIZE:
=
$(
CROSS_COMPILE)
size /* */
本文介绍了解决因使用不同编译器编译的目标文件而导致的连接问题的方法。通过在Makefile中统一使用$(CC)变量来指定编译器,并详细展示了如何设置交叉编译环境变量,包括编译器、连接器、汇编器等。
577

被折叠的 条评论
为什么被折叠?



