Makefile

羽飞 亚信 服务器端工程师  2011-11-02 03:44:02
写了一个Makefile文件,错误太多,结果出现很多问题,每次编译结果不一样,现在编译又出现了另一个问题:
ld: Mismatched ABI (not an ELF file) for Dispatch.o

#XQ Makefile

CC = g++

Source = Dispatch.cpp \
File.cpp \
Gloable.cpp \
Log.cpp \
Msg.cpp \
main.cpp \
Mutex.cpp \
Object.cpp \
Process.cpp \
Socket.cpp \
Thread.cpp \
Threads.cpp

Object = $(Source:.cpp=.o)
Dependent = $(Source:.cpp=.d)

Target = xq

$(Target):$(Object)
$(CC) -o $(Target) $(Object)

#$(Object):%.o: %.cpp %.d
# $(CC) -c $< -o $@

$(Dependent):%.d:%.cpp
$(CC) -MM $< > $@.tmp; \
sed '$$a\\t$$\(CC\) -c $$^ -o $$@' $@.tmp > $@; \ #这个是在依赖文件后加上生成规则,感觉有问题!!
rm -f $@.tmp

-include $(Dependent)

.PHONY : clean_all
clean_all:
-rm $(Target) $(Object) $(Dependent)


还有个想要的效果没达到,就是希望依赖文件也根据实现文件依赖的头文件的更新而更新
...全文
109 点赞 收藏 9
写回复
9 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
羽飞 2011-11-04
问题解决了,不过大侠们的回答没有达到小弟的期望
结贴
回复
羽飞 2011-11-03
还有,我的程序用到了系统文件,创建依赖文件时要用-MM还是-M?????
回复
羽飞 2011-11-03
[Quote=引用 6 楼 luciferisnotsatan 的回复:]

是不是你的文件坏了?

http://topic.csdn.net/u/20100827/16/dd35f1a7-ba1f-4056-a792-569780d0819d.html
[/Quote]

我感觉也是文件坏了,可是为啥会坏?我编译了N次了


是不是main函数在的文件要放在最后一个
回复
是不是你的文件坏了?

http://topic.csdn.net/u/20100827/16/dd35f1a7-ba1f-4056-a792-569780d0819d.html
回复
Mismatched ABI (not an ELF file) for Dispatch.o

第一次见这种错误
回复
羽飞 2011-11-03
[Quote=引用 3 楼 zhao4zhong1 的回复:]

生成规则必须以一个真正的TAB字符开头。
[/Quote]
这个可以保证,验证过的
现在是每次编译出的东西不一样,最郁闷的是最后出现个这样的错误:
ld: Mismatched ABI (not an ELF file) for Dispatch.o

回复
赵4老师 2011-11-02
生成规则必须以一个真正的TAB字符开头。
回复
cocoabird 2011-11-02
有点乱,依赖文件、目标文件、表达式都正确的话应该不会错吧
回复
羽飞 2011-11-02
对了,服务器是HPUX,程序都是64位的,可能需要64位编译选项,但是我还没找到
回复
相关推荐
发帖
其它技术问题
创建于2007-09-28

3849

社区成员

C/C++ 其它技术问题
申请成为版主
帖子事件
创建了帖子
2011-11-02 03:44
社区公告
暂无公告