导航:首页 > 源码编译 > 龙芯1b程序用什么编译

龙芯1b程序用什么编译

发布时间:2022-05-06 01:00:55

A. 龙芯软件开发为什么编译是灰色的

下载Dev C++的安装包是有问题的,这个版本和大多数人使用不一样。
先点击上栏的工具按钮,选择编译选项然后在编译器中的设定编译器配置里点击我下面指画的黄色双勾在接着接下来出现下面提示,点击Yes.最后现在发现设定编译器配置就存在选项了,回到主界面,编译和运行的按钮就可以使用了!

B. 龙芯电脑的软件用什么编译器,能在龙芯电脑

可以。
龙芯的电脑可以安装许多种其他版本的linux(包括安卓)甚至是bsd,只要支持mips架构的就可以。
例如Debian和FreeBSD,还有国内linux发行版deepin2014(deepin15暂时还不支持mips架构)

C. 龙芯为什么采用了mips指令集,而没有使用arm指令集

不仅仅是MIPS的架构完整性 与授权较宽松问题 还有一个重要因素—程序链
虽然如今Arm吵得火,Arm V8(64bit)更火。但是ARM V8还是一个新生的指令集组合(2011年发布,数据来自维基网络)。相对应的系统内核,编译器,支持库方面还不太完整(当然,跟进速度很快)还需要一段时间才能完善。
而MIPS不同,正如@破布 所说 。MIPS来自上世纪90年代的微架构大混战时期。 MIPS是世界上最早商业化的64位架构之一(虽然现在MIPS已经没落,被收购)。但是作为历史积累。MIPS64不仅仅有完善的微架构设计,而且还有较为完整的软件链支持。
我记得没错的话,龙芯2B开始支持64位(2003年,数据来自维基网络)。而那时,ARM还仅有ARM 11架构,更不用说现在的ARM V8指令集组了。
我的看法:MIPS虽然已经衰弱,但,MIPS现在同样还可以作为高通用性微架构使用。我感觉,龙芯选择MIPS,依然是正确的。
(以上仅代表我的个人意见)

D. 有人知道给龙芯开发桌面应用用什么开发工具

龙芯+Linux的编译器是mips-linux-gcc,龙芯的官网有介绍。

E. 龙芯与Linux问题

可以,但更建议你用ubuntu linux ,要容易上手些,使用也方便,不会打击新手自信。而且ubuntu 也有龙芯版的,可以装在龙芯上。它们本质是一样的。

原则上只要有相应的编译器,开源软件都可以运行在龙芯上。
虽然CPU不同,但是世界上所有的程序,绝大部分是C/C++语言写的,它是跨平台的语言,只要有相应的编译器(GCC)就能编译后运行在完全不同的CPU上。而linux 程序基本都是开源的,龙芯出现后肯定有很多人去移植和开发编译器。所以,你的程序只要是C/C++写的就能运行,当然,要用龙芯专用的编译器编译一次。
当然,Linux 脚本类程序不需编译也可直接运行。

F. 解释下龙芯

关于CPU和芯片,我们标准的操作系统,大约有350个C函数,这种操作系统叫标准的操作系统,IEEE

POSIX这就是标准操作系统的规范,但是事实上,美国很多军方的CPU和工控,飞机制造和武器工业控制领域很多芯片是不支持这个标准的,比如军队的OpenRISC派系的芯片,只能支持大约100~150个标准C函数,当然了,剩下的200多个函数可以使用这个100多个函数来用软件来实现,但是,这些用软件实现的库和函数,运行速度相当的慢。
实际上mips就是当年早期OpenRISC商业化的产物,但是Mips走的更远,主要解决大规模并行的浮点数运算问题。mips是支持linux操作系统的,但是这个CPU只能顺利的运行大约150个标准的操作系统的C函数。
现在C++标准库STL一共又20个大类,超过了1000个函数或者模板实现,而boost库(STL的升级版)有超过2000个复杂函数或者模板实现,这些函数如果在intel或者AMD的芯片上执行得到的结果,跟在arm上执行得到的结果很多都是不同的,尤其是执行效率问题,很多在arm上慢的要死,比java还要慢(现在安卓机主要使用java开发应用软件,编译器是使用J2SDK修改的编译器)。苹果公司在这方面有比较深入的研究。这个不细谈。
如果这个C++函数在mips芯片上执行,这里面有一多半是根本无法执行的,也就是说,会崩溃和异常退出。并且,J2SDK也是无法在mips上顺利的执行的,相当的垃圾的一个芯片。
这就是为啥在美国9年代末期,mips被市场淘汰的根本原因。

G. 龙芯1b linux下 程序用什么编译执行

Linux下C程序的编辑,编译和运行以及调试

要使用的工具:
编辑:vim(vi)
编译和运行:gcc
调试:gdb

安装很简单(以下是以在CentOS中安装为例):

1
yum vim gcc gdb

1.使用vim编辑源文件
首先,打开终端练下手:

1
vim hello.c

(进入一般模式)
按下"i",进入编辑模式,在编辑模式下输入:

1
#include <stdio.h>

2
int main(){

3
printf("Hello, World!\n");

4
return 0;

5
}

输入完成,按"ESC"键,回到一般模式,然后按下":wq",即可保存并退出vim。

附注:
在一般模式下,按下":%!xxd"查看hello.c的16进制形式,回到文本格式按下":%!xxd -r"。
查看hello.c的二进制形式,按下":%!xxd -b",这是hello.c保存在磁盘上的存储状态。
至此,在vim已完成C源文件的编辑。
关于vim的使用,直接上网搜索vim,相关的文章是相当多的;或者参考vim的联机帮助,在命令行上键入"man vim"即可。

2.编译和运行

gcc命令的基本用法:

1
gcc[options] [filenames]

其中,filenames为文件名;options为编译选项
当不使用任何编译选项编译hello.c时,gcc将会自动编译产生一个a.out的可执行文件:

1
[root@localhost c]# ls

2
hello.c

3
[root@localhost c]# gcc hello.c

4
[root@localhost c]# ls

5
a.out hello.c

执行:

1
[root@localhost c]# ./a.out

2
Hello, World!

使用-o编译选择,可以为编译后的文件指定一个名字:

1
[root@localhost c]# ls

2
a.out hello.c

3
[root@localhost c]# gcc hello.c -o hello

4
[root@localhost c]# ls

5
a.out hello hello.c

执行:

1
[root@localhost c]# ./hello

2
Hello, World!

注意:使用-o选项时,-o后面必须跟一个文件名,即:-o outfile。

为了便于描述后面的选项,删除hello和a.out可执行文件。

结合介绍gcc的编译选项,分析hello.c的编译和执行过程:
(1)预处理阶段:使用-E选项,对输入文件只做预处理不编译。当使用这个选项时,预处理器的输出被送到标准输出而不是存储到文件。如果想将预处理的输出存储到文件,可结合-o选项使用,使用如下:

1
[root@localhost c]# ls

2
hello.c

3
[root@localhost c]# gcc -E hello.c -o hello.i

4
[root@localhost c]# ls

5
hello.c hello.i

使用less查看下hello.i:

1
[root@localhost c]# less hello.i

(2)编译阶段:使用-S选项,将C程序编译为汇编语言文件后停止编译,gcc编译产生汇编文件的默认后缀为.s。

1
[root@localhost c]# ls

2
hello.c hello.i

3
[root@localhost c]# gcc -S hello.c

4
[root@localhost c]# ls

5
hello.c hello.i hello.s

在gcc -S hello.c处,使用C源文件编译,也可以用gcc -S hello.i的预处理文件编译,结果一样。

使用-S编译时,也可以和-o结合使用指定编译产生的汇编语言文件的名字:

1
[root@localhost c]# ls

2
hello.c hello.i hello.s

3
[root@localhost c]# gcc -S hello.i -o hello_s.s

4
[root@localhost c]# ls

5
hello.c hello.i hello.s hello_s.s

可使用less命令查看汇编代码。

(3)汇编阶段:使用-c选项,将C源文件或者汇编语言文件编译成可重定向的目标文件(二进制形式),其默认后缀为.o。

1
[root@localhost c]# ls

2
hello.c hello.i hello.s hello_s.s

3
[root@localhost c]# gcc -c hello.s

4
[root@localhost c]# ls

5
hello.c hello.i hello.o hello.s hello_s.s

也可以和-o结合使用指定编译产生的目标文件的名字:

1
[root@localhost c]# gcc -c hello.s -o hello.o

由于hello.o是二进制文件,使用less查看显示为乱码;

然后使用vim hello.o打开也显示为乱码,按下":%!xxd"查看其16进制形式,按下":%!xxd -r"退出 16进制查看模式,回到乱码状态。在退出vim时,若提示已经修改了文件,则使用":q!"强制退出。

(4)链接阶段:链接器将可重定向的目标文件hello.o以及库文件(如printf.o)执行并入操作,形成最终可执行的可执行目标文件。

1
[root@localhost c]# ls

2
hello.c hello.i hello.o hello.s hello_s.s

3
[root@localhost c]# gcc hello.o

4
[root@localhost c]# ls

5
a.out hello.c hello.i hello.o hello.s hello_s.s

可使用-o选项,指定输出文件(即可执行目标文件)的名字:

1
[root@localhost c]# gcc hello.o -o hello

2
[root@localhost c]# ls

3
a.out hello hello.c hello.i hello.o hello.s hello_s.s

(5)执行阶段:

1
[root@localhost c]# ./a.out

2
Hello, World!

3
[root@localhost c]# ./hello

4
Hello, World!

由此,看出前面使用的gcc hello.c -o
hello命令,将hello.c直接编译为可执行的目标文件,中间经过于处理器的预处理阶段(源文件到预处理文件),编译器的编译阶段(预处理文件到汇
编文件),汇编器的汇编阶段(汇编文件到可重定向的目标文件),链接器的链接阶段(可重定向的目标文件到可执行的目标文件)。

还有其他的选项如下:
-Idir:dir是头文件所在的目录
-Ldir:dir是库文件所在的目录

-Wall:打印所有的警告信息
-Wl,options:options是传递给链接器的选项

编译优化选项:-O和-O2
-O选项告诉GCC 对源代码进行基本优化。这些优化在大多数情况下都会使程序执行的更快。-O2选项告诉GCC产生尽可能小和尽可能快的代码。
-O2选项将使编译的速度比使用-O时慢。但通常产生的代码执行速度会更快。

除了-O和-O2优化选项外,还有一些低级选项用于产生更快的代码。这些选项非常的特殊,而且最好只有当你完全理解这些选项将会对编译后的代码产生什么样的效果时再去使用。这些选项的详细描述,请参考GCC的联机帮助,在命令行上键入"man gcc"即可。

调试选项:-g(使用详情见第3部分)
-g选项告诉GCC产生能被GNU调试器使用的调试信息以便调试你的程序。
即:在生成的目标文件中添加调试信息,所谓调试信息就是源代码和指令之间的对应关系,在gdb调试和objmp反汇编时要用到这些信息。

3.调试
虽然GCC提供了调试选项,但是本身不能用于调试。Linux 提供了一个名为gdb的GNU调试程序。gdb是一个用来调试C和C++程序的调试器。它使你能在程序运行时观察程序的内部结构和内存的使用情况。以下是gdb所提供的一些功能:
a.它使你能监视你程序中变量的值;
b.它使你能设置断点以使程序在指定的代码行上停止执行;
c.它使你能一行行的执行你的代码。

(1)启动gdb
在命令行上键入"gdb"并按回车键就可以运行gdb了,如下:

1
[root@localhost c]# gdb

2
GNU gdb (GDB) Red Hat Enterprise Linux (7.2-60.el6_4.1)

3
Copyright (C) 2010 Free Software Foundation, Inc.

4
License GPLv3+: GNU GPL version 3 or later This is free software: you are free to change and redistribute it.

5
There is NO WARRANTY, to the extent permitted by law. Type "show ing"

6
and "show warranty" for details.

7
This GDB was configured as "x86_64-redhat-linux-gnu".

8
For bug reporting instructions, please see:<>.

9
(gdb)

当启动gdb之后,即可在命令行上输入命令进行相关的调试操作。
也可以以下面的方式来启动gdb:

1
[root@localhost c]# gdb hello

这种方式启动gdb,直接将指定调试的程序文件装载到调试环境中。也就是让gdb装入名称为filename的可执行文件,从而准备调试。

了能够进行调试,当前调试的程序文件中必须包含调试信息。其中调试信息包含程序中的每个变量的类型和其在可执行文件里的地址映射以及源代码的行号,gdb
利用这些信息使源代码和机器码相关联。因此在使用gcc编译源程序的时候必须使用-g选项,以便将调试信息包含在可执行文件中。
例如:

1
[root@localhost c]# gcc -g hello.c -o hello

gdb还提供了其他的启动选项,请参考gdb的联机帮助。在命令行上键入"man gdb"并回车即可。

(2)gdb基本命令
<1>单步执行和跟踪函数调用
程序编辑如下:

01
#include <stdio.h>

02
int add_range(int low, int high){

03
int i;

04
int sum;

05
for(i = low; i <= high; i++){

06
sum = sum + i;

07
}

08
return sum;

09
}

10

11
int main(){

12
int result[100];

13
result[0] = add_range(1, 10);

14
result[1] = add_range(1, 100);

15
printf("result[0] = %d\nresult[1] = %d\n", result[0], result[1]);

16
return 0;

17

18
}

编译和运行如下:

1
[root@localhost gdb_demo]# vim test1.c

2
[root@localhost gdb_demo]# gcc test1.c -o test1

3
[root@localhost gdb_demo]# ls

4
test1 test1.c

5
[root@localhost gdb_demo]# ./test1

6
result[0] = 55

7
result[1] = 5105

H. 有人在龙芯小本上编译安装过nodejs没有

之所以出现这种情况,是因为默认编译的指令集是MIPS1,但程序中使用了一些MIPS2的指令。
MIPS1的扩展支持一些MIPS2的指令。
解决办法是在指令"ll"和"sc"前添加: .set mips2

I. 龙芯电脑的软件用什么编译器,能在龙芯电脑上编译吗可视化怎么实现还有IP是自己的还是直接MIPS的

MISP版本的linux上有那些编译器,龙芯就能用那些编译器,目前gun一系列,pythonphp等等都能用。
龙芯是自己设计的,指令集兼容mips,并自己扩充了一些。

J. 有在龙芯电脑上升级或重新编译Linux内核成功的吗

龙芯本质上是属于MIPS芯片,但是又在指令集上进行了修改和扩展,所以和真正的MIPS芯片又有些不同,要用合适的编译工具,在龙芯电脑上编译Linux内核超麻烦的,还是尽量使用原来适合的那个版本的内核吧,这样相对小众的平台出现问题了参考资料都难找呢。

阅读全文

与龙芯1b程序用什么编译相关的资料

热点内容
喷油螺杆制冷压缩机 浏览:579
python员工信息登记表 浏览:377
高中美术pdf 浏览:161
java实现排列 浏览:513
javavector的用法 浏览:982
osi实现加密的三层 浏览:233
大众宝来原厂中控如何安装app 浏览:916
linux内核根文件系统 浏览:243
3d的命令面板不见了 浏览:526
武汉理工大学服务器ip地址 浏览:149
亚马逊云服务器登录 浏览:525
安卓手机如何进行文件处理 浏览:71
mysql执行系统命令 浏览:930
php支持curlhttps 浏览:143
新预算法责任 浏览:444
服务器如何处理5万人同时在线 浏览:251
哈夫曼编码数据压缩 浏览:426
锁定服务器是什么意思 浏览:385
场景检测算法 浏览:617
解压手机软件触屏 浏览:350