资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

linux源码编译命令 linux 命令源码

linux 怎么编译c的源程序的?gcc,编译命令是什么?

编译方法:格式 gcc [option] [sourcefilename]常用的选项最简单的是:gcc hello.c默认的情况下将生成a.out的可执行性文件,

我们提供的服务有:成都网站设计、网站建设、微信公众号开发、网站优化、网站认证、桃源ssl等。为1000+企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的桃源网站制作公司

只需要在终端上输入./a.out就可以看到执行的结果,如果你想指定生成目标文件的名字那么你可以加上 -o选项,命令如下:gcc -o hello hello.c

命令:gcc -c hello hello.c

扩展资料:

gcc命令的基本用法

gcc[options] [filenames]  

其中,filenames为文件名;options为编译选项。

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

[root@localhost c]# ls  

hello.c  

[root@localhost c]# gcc hello.c  

[root@localhost c]# ls  

a.out  hello.c 

执行:

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

Hello, World! 

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

[root@localhost c]# ls  

a.out  hello.c  

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

[root@localhost c]# ls  

a.out  hello  hello.c  

执行:

[root@localhost c]# ./hello  

Hello, World! 

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

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

如何编译Linux操作系统的源代码?

1. 检测/usr/src/linux/include/linux/version.h是否存在,以判断是否以安装内核源码,而如果只将内核源码包解压,并不存在version.h这个文件,所以需要做如下步骤:

在内核源码目录下(/usr/src/linux)

1)make include/linux/version.h 生成version.h文件

2)make include/asm 创建

如果从下载的源码包,使用下列命令安装:

cd /usr/src 进入/usr/src目录中,将源码包放置在这里。

tar jxvf linux-2.6.18.tar.bz2 解压源码包,会生成linux-2.6.9目录

ln -s /usr/src/linux-2.6.18 /usr/src/linux 编译内核建议做个软链接。

并且要确保/lib/modules/2.6.18/下的build,source目录

正确指向/usr/src/linux-2.6.18的:

[root@localhost modules]#ls -l /lib/modules/2.6.18

lrwxrwxrwx 1 root root 21 2008-07-03 14:28 build - /usr/src/linux-2.6.18/

lrwxrwxrwx 1 root root 21 2008-07-03 14:28 source - /usr/src/linux-2.6.18/

做完这些,我去安装NVIDIA驱动,结果编译时出错。

将内核源码编译一次,不安装,就可以正常编译了

2.4.x内核不知是否如此,如果编译NVIDIA过程中出现错误,就先编译一下内核

方法很简单:

从/boot目录下复制config-2.6.10到/usr/src/linux下

命名为.config

对于2.6.x内核使用下列命令编译:

cd /usr/src/linux 进入源码目录

make 编译内核及模块

注意:不要去make install 只要编译就可以了。

2.4.x使用下列命令编译内核,同样,只编译不安装。

cd /usr/src/linux

make dep 建立依赖关系(不知道是否有必要,做下没坏处)

make bzImage 编译内核

make modules 编译模块

通常发行版中/boot中应该有当前内核的配置文件,如上面的config-2.6.9

如果没有的话,可以通过下列命令创建出.config

[root@localhost linux]# cd /usr/src/linux

[root@localhost linux]#make menuconfig 字符界面配置内核

[root@NEWLFS linux]#make xconfig 图形界面配置内核

这两种方法任选其一,喜欢的话,可以自己配置一下。

或者直接使用默认值,保存退出即可。这样编译时间会长一些。

make menuconfig: 假如是在图形界面中的终端运行,要保证

该终端窗口为全屏,才不会出错。

如何编译linux源代码

首先uname -r看一下你当前的linux内核版本

1、linux的源码是在/usr/src这个目录下,此目录有你电脑上各个版本的linux内核源代码,用uname -r命令可以查看你当前使用的是哪套内核,你把你下载的内核源码也保存到这个目录之下。

2、配置内核 make menuconfig,根据你的需要来进行选择,设置完保存之后会在当前目录下生成.config配置文件,以后的编译会根据这个来有选择的编译。

3、编译,依次执行make、make bzImage、make modules、make modules

4、安装,make install

5、.创建系统启动映像,到 /boot 目录下,执行 mkinitramfs -o initrd.img-2.6.36 2.6.36

6、修改启动项,因为你在启动的时候会出现多个内核供你选择,此事要选择你刚编译的那个版本,如果你的电脑没有等待时间,就会进入默认的,默认的那个取决于 /boot/grub/grub.cfg 文件的设置,找到if [ "${linux_gfx_mode}" != "text" ]这行,他的第一个就是你默认启动的那个内核,如果你刚编译的内核是在下面,就把代表这个内核的几行代码移到第一位如:

menuentry 'Ubuntu, with Linux 3.2.0-35-generic' --class ubuntu --class gnu-linux --class gnu --class os {

recordfail

gfxmode $linux_gfx_mode

insmod gzio

insmod part_msdos

insmod ext2

set root='(hd0,msdos1)'

search --no-floppy --fs-uuid --set=root 9961c170-2566-41ac-8155-18f231c1bea5

linux/boot/vmlinuz-3.2.0-35-generic root=UUID=9961c170-2566-41ac-8155-18f231c1bea5 ro quiet splash $vt_handoff

initrd/boot/initrd.img-3.2.0-35-generic

}

当然你也可以修改 set default="0"来决定用哪个,看看你的内核在第几位,default就填几,不过我用过这种方法,貌似不好用。

重启过后你编译的内核源码就成功地运行了,如果出现问题,比如鼠标不能用,usb不识别等问题就好好查查你的make menuconfig这一步,改好后就万事ok了。

最后再用uname -r看看你的linux内核版本。是不是你刚下的那个呢!有没有成就感?


网站名称:linux源码编译命令 linux 命令源码
标题路径:http://cdkjz.cn/article/ddcoicp.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220