2

我有下一个 C 代码,我正在尝试使用 arm-gcc GNU 和 eclipse 为 arm 编译。

主文件

#ifndef
#define MAIN_H_
extern int rmain(int,int);
#endif

主程序

#include main.h
#include sum.h
int rmain(a1,a2){
    int z=0x89;
    return sum(a1+a2)+z;

总和.h

#ifndef
#define SUM_H_
extern int sum(int,int);
#endif

总和.c

#include sum.h
int sum(int a1,int a2)
    return a1+a2;

我的链接器脚本文件看起来像这样:mem.lds

ENTRY(rmain)
SECTIONS:{
.=0x808080
.text:{*(.text)}
.data:{*(.data)}
.bss:{*(.bss)}
}

这项工作正常,但我的问题是我需要将函数 rmain 设置为 0x808080 地址,所以我该怎么做呢?

我尝试过:

SECTIONS:{
.=0x808080
.start:{main.o (.text)}
.text:{*(EXCLUDE_FILE(main.o).text)}
.data:{*(.data)}
.bss:{*(.bss)}
}

但不是运气链接器说:rmain的多重定义。

4

0 回答 0