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)


还有个想要的效果没达到,就是希望依赖文件也根据实现文件依赖的头文件的更新而更新
...全文
154 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
羽飞 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函数在的文件要放在最后一个
luciferisnotsatan 2011-11-03
  • 打赏
  • 举报
回复
是不是你的文件坏了?

http://topic.csdn.net/u/20100827/16/dd35f1a7-ba1f-4056-a792-569780d0819d.html
luciferisnotsatan 2011-11-03
  • 打赏
  • 举报
回复
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位编译选项,但是我还没找到

3,881

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧