我在linux下安装交叉编译器时遇到了困难。我下载了一个工具链,似乎是好的,但下一步是什么?我需要在控制台上输入什么命令才能使它被安装?
目的是将C代码转换为MIPS(小端)代码。
实际上我只需要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: nn");
fgets (string, SIZE, stdin);
printf ("Please enter char to find: ");
mychar = getchar();
for (i=0 ; string[i] != ' ' ; i++ )
if ( string[i] == mychar )
count++;
printf ("The char %c appears %d timesn" ,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:nn");
/*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 !nnProgram will now terminate...nn");
}
}
SIFT(x,y);
for (i=0 ; y[i]=='0' ; i++) /*strlen(y) without ('0')'s includes*/
m++;
/*Prints m , y's organs*/
printf("nnm = %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++;
}
}
}
您可能想尝试使用crosstool-NG为您的系统构建和安装一个工具链。
我不确定这是否会帮助你,但我已经使用ecc (http://ellcc.org)编译了你的源文件,并得到:
http://pastebin.com/keDPEcsc
和
http://pastebin.com/zQBsMVfS
希望对你有帮助。
您需要使用toolchain构建您自己的版本-它本身不是编译器,它会制作一个。看看http://www.kegel.com/crosstool/crosstool-0.43/doc/crosstool-howto.html