gcc 编译c的多文件程序问题37
发布网友
发布时间:2023-11-24 08:08
我来回答
共3个回答
热心网友
时间:2024-01-12 10:29
不怕麻烦的话呢,可以调整#include结构来让各c文件相连。。
建议呢,把类型与函数的声明整理到特定的.h文件中,然后用#ifndef来使其只被包含一次,然后,在用到其它文件中实现的函数的时候将相应的.h文件include进来就好。这样呢,编译的时候可以单个文件逐一编译:
gcc -c main.c -o main.o
gcc -c del.c -o del.o
gcc -c insert.c -o insert.o
参数-c意思是只编译不连接,-o是名命输出文件。
全部编译成.o文件无误后,再将所有的.o文件相连:
gcc main.o del.o insert.o -o prog
就可以生成prog了。
然后举个例子说明处理.h文件:
比如这个create.c。里面定义了一个struct和一个函数。那么就可以写create.h如下:
#ifndef __CREATE_H__
#define __CREATE_H__
struct student
{
long num ;
float score;
struct student *next;
};
struct student *creat(void);
#endif
然后呢,因为student这个struct在这个.h文件里已经声明了,所以create.c里只要写#include "create.h",而在用到这个struct或者这个函数的场合,也只要这样简单一句就可以了。而.h文件开头的#ifndef可以保证同一个h文件不会被多次包含。当然,如果编译器支持的话,用#pragma once也许会比#ifndef更省事一些。
以上。
热心网友
时间:2024-01-12 10:29
非常同意 樱凌准的做法,补充一点,再main.c里也要添加#include "creat.h"等头文件
热心网友
时间:2024-01-12 10:30
gcc a.c b.c c.c d.c -o abcd