如何实现linux下的C++多文件编译

如何实现linux下的C++多文件编译,第1张

要分开编译,然后链接,比如

$ g++ print.cpp -c

$ g++ test.cpp -c

$ g++ test.o print.o -o mytest

这里的-c表示只编译。因为你有两个文件,所以编译两次。编译后会生成.o的文件。

然后把这些在链接起来就可以了。-o表示输出的文件。

首先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内核版本。是不是你刚下的那个呢!有没有成就感?

打字不易,如满意,望采纳。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8457861.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-16
下一篇 2023-04-16

发表评论

登录后才能评论

评论列表(0条)

保存