分类: LINUX
2010-07-20 17:12:54
zhou@zhou:~/zhou/test$ ls add main.c Makefile |
/* main.c */ |
zhou@zhou:~/zhou/test/add$ ls add_float.c add.h zhou@zhou:~/zhou/test/add$ |
/* add_float.c */ #include float add_float(float a, float b) { printf("a=%f,b=%f,a+b=%f\n",a,b,a+b); return a+b; } |
/* add.h */ #ifdef __ADD_H__ #define __ADD_H__ extern int add_int(int a, int b); extern float add_float(float a, float b); #endif /*__ADD_H__*/ |
CFLAGS = -Iadd VPATH=add OBJS = add_float.o main.o TARGET = cacu $(TARGET):$(OBJS) $(CC) -o $(TARGET) $(OBJS) $(CFLAGS) clean: -$(RM) $(TARGET) -$(RM) $(OBJS) |
chinaunix网友2010-07-21 10:28:23
说一晚上是开玩笑而已。。呵呵,其实开始也没注意到这个宏的细节问题,甚至连那个宏看都没看,最后研究了半天发现是函数声明的问题,所以问题就立刻定位到你的那个头文件了。。。。说是高手也是开玩笑而已,大家互相学习下,呵呵,关于这个问题的深层次原因我整理了一下,在我blog,可以探讨下。。。http://blog.csdn.net/coder_jack/archive/2010/07/21/5751680.aspx
chinaunix网友2010-07-20 22:22:02
靠!鄙视,你的头文件中 #ifdef __ADD_H__ 是错误的,应该#ifndef __ADD_H__ !!!!!!!!NOT def 靠!害我们三个高手搞了一晚上!还以为float中真的有你说的bug