gcc编译两个不同目录下的C文件时提示undefined referrence to ..........
现在我有两个目录dir1和dir2,其中dir1中有两个文件,分别为
max.h内容为:
#ifndef __NUM_H
#define __NUM_H
extern int max(int a, int b);
#endif
max.c内容为 :
int max(int a, int b)
{
if(a >b)
return a;
else
return b;
}
在目录dir2中有main.c,内容为
#include <stdio.h>
#inlcude "dir1/max.h"
int main()
{
int a = 2, b = -1, result;
result = max(a, b);
printf("较大的数是: %d\n", result);
return 0;
}
查阅资料后,网上说使用GCC有两种方法可以运行,第一种,在两个目录中分别编译生成目标文件再把两个目录的目标文件编译在一起然后再执行,经试验,没问题。
第二种方法:在用gcc编译的时候,-指定.h所包含的目录。即:在dir2目录下,输入gcc -g main.c -o main -I ../dir1/
可是我使用这种方法得到的结果总是undefined reference to "max"。希望大家明示啊!!!