Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 交叉编译mips:链接器错误:找不到条目符号\u start;_Linux_Compiler Errors_Mips - Fatal编程技术网

Linux 交叉编译mips:链接器错误:找不到条目符号\u start;

Linux 交叉编译mips:链接器错误:找不到条目符号\u start;,linux,compiler-errors,mips,Linux,Compiler Errors,Mips,所以我试图交叉编译用汇编(使用MARS)编写的简单程序到mips可执行文件 # Purpose: First program, Hello World .text # Define the program instructions. main: # Label to define the main program. li $v0,4 #Load 4into $v0 to indicate a print string. la $a0,

所以我试图交叉编译用汇编(使用MARS)编写的简单程序到mips可执行文件

# Purpose: First program, Hello World
.text            # Define the program instructions.
main:            # Label to define the main program.
li $v0,4          #Load 4into $v0 to indicate a print string.
la $a0, greeting #Load the address of the greeting into $a0.
syscall          #Print greeting.  The print is indicated by
                 # $v0 having a value of 4, and the string to    
                 # print is stored at the address in $a0. 
li $v0,10         #Load a 10 (halt) into $v0.
syscall          # The program ends.
.data            # Define the program data.
greeting: .asciiz "Hello World" #The string to print.
首先我使用

mips-linux-as ./HelloWorld.asm -o HelloWorld.o
然后

我得到一个错误

mips-linux-xld: warning: cannot find entry symbol __start; defaulting to 00000000004000b0
简单地添加_start部分不起作用,我得到了相同的错误

mips-linux-gcc -O2 -S -c HelloWorld.c
而且没有开始部分

    .file   1 "HelloWorld.c"
    .section .mdebug.abi32
    .previous
    .gnu_attribute 4, 3
    .abicalls
    .section    .rodata.str1.4,"aMS",@progbits,1
    .align  2
$LC0:
    .ascii  "Hello Worldn\000"
    .text
    .align  2
    .globl  main
    .set    nomips16
    .ent    main
    .type   main, @function
main:
    .frame  $sp,32,$31      # vars= 0, regs= 1/0, args= 16, gp= 8
    .mask   0x80000000,-4
    .fmask  0x00000000,0
    .set    noreorder
    .set    nomacro

    addiu   $sp,$sp,-32
    sw  $31,28($sp)
    lui $28,%hi(__gnu_local_gp)
    addiu   $28,$28,%lo(__gnu_local_gp)
    .cprestore  16
    lui $4,%hi($LC0)
    lw  $25,%call16(printf)($28)
    jalr    $25
    addiu   $4,$4,%lo($LC0)

    move    $2,$0
    lw  $31,28($sp)
    j   $31
    addiu   $sp,$sp,32

    .set    macro
    .set    reorder
    .end    main
    .size   main, .-main
    .ident  "GCC: (GNU) 4.4.5-1.5.5p4"

那么我错过了什么?我想在我的mips盒上运行此程序。

尝试将其添加到asm文件中

.globl  main
.ent    main
.type   main, @function

但是,您需要使用MIPS Linux,而不是MARS系统调用。

不,相同的交易找不到进入符号\uu start;默认为0000000000 4000b0
.globl  main
.ent    main
.type   main, @function