
在Linux下面,如果要编译一个C语言源程序,我们要使用gcc编译器。
先将源文件编译成目标文件:gcc - c hello.c
生成hello.o文件,再将目标文件编译成可执行文件:gcc -o hello hello.o
如:
int main(int argc,char **argv)
{
printf("Hello Linux\n")
}
扩展资料:
在使用GCC编译器的如则时候,我们必须渣卖棚给出一系列必要的调用参数和文件名称。GCC编译器的调用参数大约有100多个,这里只介绍其中最基本、最常用的参数。具体可参考GCC Manual。
GCC最基本的用法是∶gcc [options] [filenames]
其中options就是编译器所需要的参数,filenames给出相关的配逗文件名称。
参考资料:
百度百科_gcc
格式 gcc [option] [sourcefilename]
介绍一竖团备些常用的选项:最简单的是:gcc hello.c
默认的情况下将生成a.out的可执行性文件,你只需要在终端上输入./a.out就或档可以看到执行的结果.
如果你想指定生成目标文件余毁的名字那么你可以加上 -o选项,命令如下:
gcc -o hello hello.c
命令如下:
gcc -c hello hello.c
首先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内核版本。是不是你刚下的那个呢!有没有成就感?
打字不易,如满意,望采纳。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)