社区导航

 
快捷导航
  • 首页
  • 论坛
  • 查看新帖
  • 最新回复
  • 精华区
  • 社区活动
  • 联系管理员
  • 消灭零回复
  • E金币兑换
搜索
查看: 2025|回复: 3

[经验] 一个带类似IDE目录树的makefile实例

[复制链接]

233

TA的帖子

2

TA的资源

一粒金砂(高级)

Rank: 3Rank: 3

发表于 2014-8-24 15:55:12 | 显示全部楼层 |阅读模式
本帖最后由 lzwml 于 2014-8-24 16:25 编辑

对于大型工程源代码最好分目录存放便于管理,但是编写makefile就相对麻烦点。

这里是我写的一个makefile demo,它的关键之处在编译前导入config_xxx_file_list.mk,这个文件可以看成是IDE环境的代码目录树。具体怎么修改这个目录树相信打开文件大家都能看懂。

该实例包含两个工程,LibMakefile.mk和AppMakefile.mk
LibMakefile.mk导入config_lib_file_list.mk目录树,生成一个lib/libdemo.so动态链接库
AppMakefile.mk导入config_app_file_list.mk目录树,生成一个release/download.elf文件

测试方法
1、make -f LibMakefile.mk
2、make -f AppMakefile.mk因为编译download.elf时需要libdemo.so,所以必须先生成libdemo.so
3、./release/download.elf输出
I'm f1_1
I'm f2_1 in libdemo.so/a
I'm f2_2 in libdemo.so/a
I'm logo0
I'm logo1
I'm logo2
I'm logo3
I'm logolib in lib
此帖出自ARM技术论坛

makeAppLib.rar

4.31 KB, 下载次数: 16

售价: 1 枚芯币  [记录]


回复

使用道具 举报

23

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2014-8-24 16:58:26 | 显示全部楼层
好东西,问一下楼主是否对目录的级数有限制

点评

目录级别??? 我没测试过,这个东西只是Makefile的脚本,我写的某应用程序规定输入字符限制,没有什么数据结构,不存在溢出的情况。 要是真有目录级别限制你就要问问linux了,或者Makefile变量存储字符串长度是  详情 回复 发表于 2014-8-24 19:30

回复

使用道具 举报

233

TA的帖子

2

TA的资源

一粒金砂(高级)

Rank: 3Rank: 3

 楼主| 发表于 2014-8-24 19:30:01 | 显示全部楼层
本帖最后由 lzwml 于 2014-8-24 19:38 编辑
wcabcd 发表于 2014-8-24 16:58
好东西,问一下楼主是否对目录的级数有限制


目录级别???
我没测试过,这个东西只是Makefile的脚本,不是我写的某应用程序规定输入字符限制,没有什么数据结构,不存在溢出的情况。用到的只是Makefile的变量
要是真有目录级别限制你就要问问linux了,或者Makefile变量存储字符串长度是否有限制,我只知道windows下有“路径长度”限制MSDN说是256吧,是“路径”而不是“目录”
char path[] = “d:\\a\\b\\c\\...\\file.txt”;
path的字符数限定在256,于目录数目无关

你要想是测试就建立若干目录,然后将目录的相对路径(相对Makefile的路径)替换掉下面的dir1/dir11
DIR_$(_NAMEDIR11_)  = dir1/dir11


回复

使用道具 举报

122

TA的帖子

2

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2015-1-22 11:54:35 | 显示全部楼层
感谢楼主,因为你的帮助,我的学习更加轻松,共同学习,一起飞!@

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

小黑屋|手机版|Archiver|电子工程世界 ( 京ICP证 060456

GMT+8, 2017-9-24 07:47 , Processed in 0.286248 second(s), 23 queries , Redis On.

快速回复 返回顶部 返回列表