千家信息网

Linux makefile问题怎么解决

发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,这篇文章主要讲解了"Linux makefile问题怎么解决",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Linux makefile问题怎么解决"吧
千家信息网最后更新 2025年12月02日Linux makefile问题怎么解决

这篇文章主要讲解了"Linux makefile问题怎么解决",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Linux makefile问题怎么解决"吧!

将各个模块的关系写进makefile,并且写明了编译命令,这样,当有模块的源代码进行修改后,就可以通过使用make命令运行makefile文件就可以进行涉及模块修改的所有模块的重新编译,其他模块就不用管了。

makefile文件的写法:

目标, 组件
规则

例如 有下面5个文件:

/* main.c */
#include "mytool1.h"
#include "mytool2.h"
int main(int argc,char **argv)
{
mytool1_print("hello");
mytool2_print("hello");
}
/* mytool1.h */
#ifndef _MYTOOL_1_H
#define _MYTOOL_1_H
void mytool1_print(char *print_str);
#endif
/* mytool1.c */
#include "mytool1.h"
void mytool1_print(char *print_str)
{
printf("This is mytool1 print %s\n",print_str);
}
/* mytool2.h */
#ifndef _MYTOOL_2_H
#define _MYTOOL_2_H
void mytool2_print(char *print_str);
#endif
/* mytool2.c */
#include "mytool2.h"
void mytool2_print(char *print_str)
{
printf("This is mytool2 print %s\n",print_str);
}

可以这样进行编译以便运行main这个可执行文件

gcc -c main.c (生成main.o)
gcc -c mytool1.c (生成mytool1.0)
gcc -c mytool2.c (生成mytool2.0)
gcc -o main main.o mytool1.o mytool2.o (生成main)

也可以这样写makefile文件

main main.o mytool.o mytool2.o
gcc -0 $@ $^
main.0 main.c mytool1.h mytool2.h
gcc -c $<
mytool1.0 mytool1.c mytool1.h
gcc -c $<(或者是mytool.c)
mytool2.0 mytool2.c mytool2.h
gcc -c $<(或者是mytool2.c)

通过make命令可以运行该文件,也就是进行编译了。

Linux上有很多库,c语言编写的各种库的总称为libc,glibc为libc的一个子集,由gnu提供,内核提供的系统函数和系统调用是不包括在libc中。

Linux系统默认会安装glibc

glibc中

常用库gcc会自动去查找,不予理会。

在/lib, /usr/lib, /usr/local/lib 在这三个路径下面有一些标准库,只需-l+库名 可以不必要指定路径。其他库必须在用gcc时用-L+具体的路径。通过本文你就能全面了解Linux makefile。

感谢各位的阅读,以上就是"Linux makefile问题怎么解决"的内容了,经过本文的学习后,相信大家对Linux makefile问题怎么解决这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

文件 问题 模块 生成 编译 命令 系统 路径 学习 运行 内容 三个 不用 也就是 内核 写法 函数 只需 可以通过 子集 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 代码插数据库报错 软件开发企业的市场分析 中国通信大学网络安全 linux虚拟机下切换数据库 软件开发国际认证 软件开发公司如何拓客 杭州时秒互联网科技有限公司 南昌软件开发公司待遇怎么样 奉贤区公司软件开发售后服务 我的世界服务器对电脑的要求 怎么判定网络安全 中国学位论文全文数据库网址 宝壶(北京)网络技术 vs code写界面连接数据库 软件开发团队宣传报道 局域网管理与服务器搭建 软件开发的应届生待遇 华为网络技术实验指南电子书 挖财网络技术有限公司地址 网络技术osi参考模型定义 zabbix服务器型号 工业互联网平台首选 汉脑 科技 赣州定制软件开发 为什么软件开发经常要90天 数据库联合索引存储的是什么 怎么建立医疗方面的数据库 深圳市巨星网络技术怎么样 验工计价软件开发 软件开发自学可以找到工作吗 大镖客2失去服务器连接
0