当前位置: 首页 > news >正文

Makefile相关资料

之前接触过给一个project写makefile文件,积累些资料如下。

================

编译多文件的方法

1. 分别编译,再进行连接。
    如有:main.c information.c get-places.c 三个文件,先对他们分别进行编译
----------------------------------------------------------------------------------------
$gcc -c main.c        //生成目标文件main.o
$gcc -c information.c    //生成目标文件information.o
$gcc -c get-places.c    //生成目标文件get-places.o
然后再连接。
$gcc -lm -Wall -g -o executable_name main.o information.o get-places.o
----------------------------------------------------------------------------------------

2. 用#include命令

----------------------------------------------------------------------------------------
main.c文件
    #include "information.c"
    #include "get-places.c"
----------------------------------------------------------------------------------------

编译连接命令:$gcc -Wall -g -lm -o execatable_name main.c
这时候是作为一个文件来编译和连接的,因为这些函数包含在同一文件中,不再是作为外部函数被文件调用了。

--------------------

跟我一起写Makefile

http://blog.csdn.net/haoel/archive/2004/02/24/2886.aspx
--------------------

例解autoconf和automake生成Makefile文件

http://www.ibm.com/developerworks/cn/linux/l-makefile/
本文介绍了在 linux 系统中,通过 Gnu autoconf 和 automake 生成 Makefile 的方法。主要探讨了生成 Makefile 的来龙去脉及其机理,接着详细介绍了配置 Configure.in 的方法及其规则。
--------------------

多文件项目和GNU Make工具

http://www.upsdn.net/html/2005-06/508.html
本文将首先介绍为什么要将你的C源代码分离成几个合理的独立档案,什么时 候需要分,怎么才能分的好。然后将会告诉你 GNU Make 怎样使你的编译和连 接步骤自动化。对于其它 Make 工具的用户来说,虽然在用其它类似工具时要 做适当的调整,本文的内容仍然是非常有用的。

转载于:https://www.cnblogs.com/pegasus923/archive/2010/10/08/1846067.html

相关文章:

  • 浅谈角色与权限
  • Exchange2007如何给邮件通讯组Distribution Group设置Send As与Behalf 权限
  • 错误与修正
  • 转: CRT检测内存泄漏技巧以及注意问题
  • RIP协议拓扑结构变化-收敛
  • Redhat 下不重启系统发现LUN
  • asp.net导出数据到EXCEL简单有效
  • RedHat 6.0环境下Oracle 8.0.5的安装
  • Windows 7下用无线网卡自建热点共享Internet访问
  • Oracle发布更新使数据库性能优化达到75%
  • tip
  • 关于MySQL备份还原的几种方案
  • DLL导入
  • 机械版CG 附加实验1 中点画线算法
  • N多JPG图片如何转换成PDF文档
  • 【翻译】babel对TC39装饰器草案的实现
  • css选择器
  • LeetCode刷题——29. Divide Two Integers(Part 1靠自己)
  • Python中eval与exec的使用及区别
  • vue-router的history模式发布配置
  • 安装python包到指定虚拟环境
  • 从零开始的webpack生活-0x009:FilesLoader装载文件
  • 诡异!React stopPropagation失灵
  • 解析带emoji和链接的聊天系统消息
  • 浏览器缓存机制分析
  • 前端性能优化--懒加载和预加载
  • 微信开放平台全网发布【失败】的几点排查方法
  • 大数据全解:定义、价值及挑战
  • 树莓派用上kodexplorer也能玩成私有网盘
  • 曜石科技宣布获得千万级天使轮投资,全方面布局电竞产业链 ...
  • 曾刷新两项世界纪录,腾讯优图人脸检测算法 DSFD 正式开源 ...
  • ​flutter 代码混淆
  • ​如何在iOS手机上查看应用日志
  • #git 撤消对文件的更改
  • #QT(串口助手-界面)
  • #QT(智能家居界面-界面切换)
  • #Spring-boot高级
  • #考研#计算机文化知识1(局域网及网络互联)
  • (10)STL算法之搜索(二) 二分查找
  • (超详细)2-YOLOV5改进-添加SimAM注意力机制
  • (附源码)springboot 房产中介系统 毕业设计 312341
  • (亲测)设​置​m​y​e​c​l​i​p​s​e​打​开​默​认​工​作​空​间...
  • (新)网络工程师考点串讲与真题详解
  • (一)Dubbo快速入门、介绍、使用
  • (中等) HDU 4370 0 or 1,建模+Dijkstra。
  • .gitignore文件—git忽略文件
  • .NET 5种线程安全集合
  • .NET Core 项目指定SDK版本
  • .NET Core、DNX、DNU、DNVM、MVC6学习资料
  • .NET Core实战项目之CMS 第一章 入门篇-开篇及总体规划
  • .NET Core中Emit的使用
  • .Net FrameWork总结
  • .NET MVC 验证码
  • .Net 转战 Android 4.4 日常笔记(4)--按钮事件和国际化
  • .NET设计模式(8):适配器模式(Adapter Pattern)