菜鸟紧急求助:gcc下的多源文件makefile

Scorpiour Scorpiour 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
以前一直用vc写程序所以从来没注意过,最近因为需要用gcc写了一个c的程序,结果遇到makefile的问题让我一个头两个大

简单来说就是程序包含了若干个源文件
f1.c f2.c f3.c
以及一个头文件f.h

头文件包括了所有的函数声明,结构体声明。

结果在编译的时候遇到如下问题:

1. undefined reference

无法调用其它源文件中的函数
下面是我的makefile

test.exe : f1.o f2.o f3.o
gcc -o f1.o f2.o f3.o
f1.o : f1.c f.h
gcc -c f1.c f.h
f2.o : f2.c f.h
gcc -c f2.c f.h
f3.o : f3.c f.h
gcc -c f3.c f.h


2.自定义结构体被识别为语法错误
head file中的定义

typedef struct user_data
{
char Name[NAME_LEN];
char ID[ID_LEN];
char Password[PW_LEN];
}DATA,*pDATA;

typedef struct data_list
{
pDATA User_Data;
data_list * Prev;
data_list * Next;
}DATA_LIST,*pDATA_LIST;

/* ... */

pDATA GetUserData(pDATA_LIST);


所有在头文件使用了自定义struct的地方都会报错

然后将其缩减为诸如

[code=C]\C++
typedef struct user_data DATA,*pDATA;
typedef ...


struct user_data
{
...
};

[/code]

也不行。。

真的是完全搞不清楚问题所在,以前用vc的时候从来没遇到类似问题。。。

在此真是感谢各位大大了

...全文

相关推荐

评论 12
收藏 已收藏
分享
返回顶部
Scorpiour
C语言 70,039 成员 243,237 内容