多文件使用linux进行编译

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了多文件使用linux进行编译相关的知识,希望对你有一定的参考价值。

我这里有一整个文件夹,里面有.c .h .cs .mk等类型的文件,我需要对他们使用linux命令对其进行编译,不知道如何操作。还有,问一下,这些文件分别是怎么生成的呢?是自己使用别的什么软件生成的还是说直接用linux系统命令来的?同时求师傅,linux方面对c进行编译的
求一个linux系统知识较了解的师傅,真的~~~~这都40分了师傅还不出现,得多少分才有师傅来

可以使用makefile进行make编译,建议先看一下简单的make fike编写规则。
一般情况下在MakeFile或*.mk下进行make就可以~~追问

我看过mk的编写规则了,但是还不是很清楚,mk是一个软件吗还是使用什么就可以编译?我需要在使用mk之前做什么准备吗?我现在只会编译一个文件的可执行文件,对于文件数多了的大的项目,我就不清楚了

追答

make是一个编译工具,可以自动完成编译工作。
其实,make就是编译多个可执行文件的集合。只不过相当于把编译的指令添加到makefile中,一起编译罢了~
具体的可以在百度上搜索“makefile教程”,第一个就是,看看前面基本上就差不多了。

追问

你对linux命令或者这些mk等等类的东西熟悉吗?要不干脆你做我师父得了,最近这些问题很困人。

追答

真不熟~~你多看看就行~~其实,我不是学计算机的~~我是学数学的

参考技术A 关于文件怎么生成的:可以是软件生成的,也可以是linux命令生成的,也可以是函数生成的,也可以是手打的。可以去了解下linux的文件操作、IO函数。
关于编译:借由你的编译器,再通过编译脚本进行编译。不同环境可能有差异,linux下常用makefile来处理这些问题,那个.mk后缀的文件,很大可能就是makefile文件。你可以去了解下。
参考技术B sh XXX ?
cat XXX ?
./XXX ?追问

你这问号是什么意思

追答

是否可以的意思。
只是一个参考。

追问

呵呵,看来你对这个也不是很了解啊

追答

.c .h 可能你说的是c语言方面的吧,没学过,之前没看自己你写的追加解释。
我只会一些linux的操作。

Linux 内核Linux 内核特性 ( 组织形式 | 进程调度 | 内核线程 | 多平台虚拟内存管理 | 虚拟文件系统 | 内核模块机制 | 定制系统调用 | 网络模块架构 )

文章目录





一、Linux 内核特性




1、Linux 内核组织形式


Linux 内核组织形式 : 整体式结构 ;

Linux 内核 由很多 过程 组成 , 每个 过程 都可以进行 独立编译 ,

然后将独立编译的 内核模块 , 链接形成一个单独的 目标程序 ,

每个过程 , 对其它 过程 , 都是可见的 ,

这种组织形式 内部结构简单 , 并且 工作效率 高 ;

开发角度 看 , 基于 过程 结构 , 开发人员可以参与 整体 Linux 内核的开发过程 , 这是一个 开放式的结构 , 允许任何开发人员对其进行 修改 ;


2、Linux 进程调度


Linux 进程调度 简单 , 高效 ,

Linux 采用了 动态优先级 的调度方式 ;


3、Linux 内核线程


Linux 支持 内核线程 , 即 守护进程 , 其 运行效率 高于 普通线程 ;

内核线程 在 后台运行 , 不需要与 命令行终端结合 ;


4、Linux 内核多平台虚拟内存管理


Linux 内核支持 多平台 虚拟内存管理 ,

内存管理 与 硬件平台 相关性很高 , 不同的硬件平台 , 使用的内存管理方式是不同的 ,

Linux 内核为了保证 内存管理 的通用性 , 同时还要 兼容不同的硬件平台 ,

Linux 内核提供了 虚拟内存管理 机制 , 提供 统一的内存管理接口 , 可以将 Linux 内核很容易移植到新的硬件平台中 ;


5、Linux 虚拟文件系统


Linux 虚拟文件系统 , 英文全程 Virtual File System , 简称 VFS ;

虚拟文件系统 ( VFS ) 为 逻辑文件系统 ( FAT32 , NFTS , EXT2/3/4 ) 提供 统一的标准接口 , 也为 硬件设备 提供了 标准接口 ;


6、Linux 内核模块机制


Linux 模块机制 可以使得 Linux 内核能够 保持独立 , 并且 很容易 进行扩充 , 可以任意 添加 / 卸载 内核模块 ;

如 : 新增加了一个设备 , 设备驱动程序就是一个内核模块 , 可以 动态的安装该设备驱动程序内核模块 ; 移除设备后 , 也可以动态卸载内核模块 ;

在之前的博客 【Linux 内核】编译 Linux 内核 ⑦ ( 安装内核模块 | 安装内核 | 重启系统 | 查看当前内核版本 ) 中 , 编译完内核之后 , 直接将内核安装到 Ubuntu 操作系统中 , 替换了之前的内核 ;


7、Linux 定制系统调用


系统调用是 操作系统 提供的 可以 调用 内核功能的接口 ,

Linux 允许开发者 开发 自己的系统调用 , 然后将 系统调用 加载到 内核模块中 ,

动态增加 系统调用 , 可以满足用户特殊需求 ;


8、Linux 网络模块架构


Linux 内核网络模块 , 符合 面向对象思想架构 , 使得 内核 支持多种协议 , 支持多种网卡驱动程序 ;

以上是关于多文件使用linux进行编译的主要内容,如果未能解决你的问题,请参考以下文章

gcc 编译多文件批处理文件

Linux使用vim进行多文件查找和替换的方法

ubuntu(Linux)安装Vs code并配置c++编译及cmake多文件编译

Linux 内核Linux 内核特性 ( 组织形式 | 进程调度 | 内核线程 | 多平台虚拟内存管理 | 虚拟文件系统 | 内核模块机制 | 定制系统调用 | 网络模块架构 )

请教多文件夹makefile问题

如何在linux上编译c工程文件