LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1631|回复: 13

makefile不支持子目录检查

[复制链接]
发表于 2008-1-23 00:20:59 | 显示全部楼层 |阅读模式
为了让主程序和动态库分开,也为了让源文件与目标文件分开,makefile中我用了
$(object) : lib%.so : %.c %.h
gcc -o lib/$<@ $<
这就造成不管是否改变源文件,每次make都重新生成目录库,但它不支持
$(object) : lib/lib%.so : %.c %.h
gcc -o $<@ $<
搞了几个晚上都不行,所以上来请教,请高手解答,能不能实际目标库与源文件分开存放
 楼主| 发表于 2008-1-23 00:57:28 | 显示全部楼层
也不支持
source := *.c
object := $(patsubst %.c, lib/lib%.so, $(source))
有点头大了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-1-23 00:59:29 | 显示全部楼层
也不支持
source := *.c
object := lib/$(patsubst %.c, lib%.so, $(source))
有点头大了
回复 支持 反对

使用道具 举报

发表于 2008-1-23 02:58:00 | 显示全部楼层
怎么可能不支持呢,随便找个软件看看,有几个软件的动态库跟可执行文件不是分开的?
建议你还是找个软件看看,学学人家是怎么打包的。
如果嫌autotools麻烦的话,可以看看cmake。这个还是很容易上手的。
回复 支持 反对

使用道具 举报

发表于 2008-1-23 08:59:53 | 显示全部楼层
autotools不麻烦吧,只要写configure.ac还有Makefile.am就可以了。
configure.ac还可以用autoscan自动生成。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-1-23 13:19:37 | 显示全部楼层
也就是说光用makefile不能实现?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-1-23 15:11:20 | 显示全部楼层
其实我的想法很简单,头文件一个目录,源文件一个目录,生成的动态库一个目录,主程序在顶目录,不想用make install类的东西,让它支持可移动
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-1-23 15:52:09 | 显示全部楼层
source := *.c
object := $(patsubst %.c, ../lib/lib%.so, $(source))
$(object) : $(source)##此处不能用$(object) : %.so : %.c这种方式
      gcc -o $@ $<

另外请高手们在解答的时候不要误导,只是一个简单的makefile的问题为什么非要搞到auotmake。。。上去呢,如果您不想解答就不要回了,更不要说一些“自己google或是看书一类的“这类的话本人听得太多了---只是说明本意,请不要误解,谢谢关注
回复 支持 反对

使用道具 举报

发表于 2008-1-24 06:17:57 | 显示全部楼层
Post by kingbo;1810348
source := *.c
object := $(patsubst %.c, ../lib/lib%.so, $(source))
$(object) : $(source)##此处不能用$(object) : %.so : %.c这种方式
      gcc -o $@ $<

另外请高手们在解答的时候不要误导,只是一个简单的makefile的问题为什么非要搞到auotmake。。。上去呢,如果您不想解答就不要回了,更不要说一些“自己google或是看书一类的“这类的话本人听得太多了---只是说明本意,请不要误解,谢谢关注


这里没有人有义务帮助你,更没有人有义务按照你希望的方式帮助你。问个问题还牛逼轰轰的……
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-1-24 13:27:28 | 显示全部楼层
这里没有人有义务帮助你,更没有人有义务按照你希望的方式帮助你。问个问题还牛逼轰轰的……
又是老样子的话,听多了,要起茧了.......

我的意思很明白,就是不要误导新人,不想回答的真的路过就行
很多问题都是问了又答,答了又问的,要不google没那么容易找得到解决方法,所以也不要那么烦燥,真的对身体不好
我不是高手但也不是新手了,摸了这么多年的linux,想来这牛脾气也多多少少跟前辈们有点关系,现在走向编程,又开始问些新手问题看来是要得罪不少人了,还请多多原谅
回复 支持 反对

使用道具 举报

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

本版积分规则

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