Как установить кросс-компилятор gcc - PullRequest
0 голосов
/ 15 апреля 2011

У меня возникают трудности при попытке установить кросс-компилятор под Linux. Я скачал набор инструментов, который, кажется, в порядке, но что дальше? какие заказы мне нужно набрать в консоли, чтобы она была установлена?

Цель состоит в том, чтобы преобразовать код C в код MIPS (little-endian).

На самом деле мне это нужно один раз только для 2 кодов, так что если кто-то сможет показать мне только эти коды в MIPS, я буду более чем счастлив ...

первый код:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define SIZE 128

int main ()

{
    char mychar , string [SIZE];
    int i;
    int count =0 ;  

    printf ("Please enter your string: \n\n");
    fgets (string, SIZE, stdin);

    printf ("Please enter char to find: ");
    mychar = getchar();

    for (i=0 ; string[i] != '\0' ; i++ )
        if ( string[i]  == mychar )
            count++;

    printf ("The char %c appears %d times\n" ,mychar ,count);


    return 0;
}

второй код:

#include <stdio.h>
#include <string.h>

void SIFT(int x_arr[ ], int y_arr[]);

int main ()
{
    int x[20] = {0} , y[20] = {0};
    int m=0,temp=0,curr=0,i=0,j=0;

    printf("Please enter your numbers now:\n\n");

    /*enter numbers one by one. if x[i+1] value < x[i] value, err msg.
      when user want to end the series he must enter '0' which means end of string (it wont       included in x[]) */
    while ( (scanf("%d",&temp) ) != 5 )
    {
        if (temp >= curr)
        {
            x[i] = temp;
            curr = temp;
            i++;
        }
        else
        {
            printf("The numbers are not at the right order !\n\nProgram will now terminate...\n\n");
        }
    }

    SIFT(x,y);

    for (i=0 ; y[i]=='0' ; i++) /*strlen(y) without ('0')'s includes*/
        m++;

    /*Prints  m , y's organs*/
    printf("\n\nm = %d",m);
    printf("Y = ");
    while (y[j]!='0')
    {
        printf ("%d ,",y[j]);
        j++;
    }

return 0;
}

void SIFT(int x_arr[ ], int y_arr[])
{
    int i=0,j=0;

    while (x_arr[i] != '0')
    {
        if (x_arr[i] == x_arr[i+1]) /*if current val. equals next val. -> jump dbl at x_arr*/
        {
            y_arr[j] = x_arr[i];
            i+=2;
            j++;
        }
        else
        {
            y_arr[j]=x_arr[i];
            i++;
            j++;
        }
    }    

}

Ответы [ 3 ]

0 голосов
/ 15 апреля 2011

Я не уверен, поможет ли это вам, но я скомпилировал ваши исходные файлы, используя ecc (http://ellcc.org) и получил:

http://pastebin.com/keDPEcsc

и

http://pastebin.com/zQBsMVfS

Hopeэто помогает.

0 голосов
/ 15 апреля 2011

вам нужно собрать собственную версию с помощью toolchain - это не компилятор сам по себе, он создаст его.посмотрите на http://www.kegel.com/crosstool/crosstool-0.43/doc/crosstool-howto.html

0 голосов
/ 15 апреля 2011

Возможно, вы захотите попробовать использовать crosstool-NG для сборки и установки набора инструментов для вашей системы.

...