gcc交叉编译器生成___main而不是_main

时间:2017-07-26 15:46:57

标签: c gcc assembly cross-compiling

我正在为新架构构建交叉编译器,但是在编译如下所示的简单c代码时:

int sum(int a, int b);

int main()
{
    int z=sum(2,3);
    return 0;
}

int sum(int a, int b)
{
    return a+b; 
}

我收到以下汇编代码:

.text
    .global _main
_main:
    push fp
    mov fp, sp
    jmp 2
    call ___main
    limm r0, 3
    push r0
    limm r1, 2
    push r1
    call _sum

    ...
    ...

    ret

    .global _sum
_sum:
    push fp
    mov fp, sp

    ...
    ...

    ret

当尝试汇编代码时,它会为调用___ main 引发错误的错误参数,但对于只有一个下划线的其他标签(如_sum),它可以正常工作。

现在,我的问题是:有什么方法可以更改汇编程序输出,以便输出调用_main (编译器文件中的任何宏或其他内容)?

我已经阅读了很多关于这个错误的信息,它说调用_main 调用___ main 是C库设置的一部分,并且具有相同的地址(是真的),但是我的装配工并没有让它通过。

我正在使用GCC版本5.3.0进行交叉编译。

0 个答案:

没有答案