如何使用gcc编译包含在另一个c文件中定义的函数的c文件?

如何使用gcc编译包含在另一个c文件中定义的函数的c文件?,gcc,hyperlink,Gcc,Hyperlink,我有两个名为file1.c和file2.c的c文件,都包括另一个头文件file3.h。我在file2.c中定义了一个函数,并在file3.h中声明了它。然后我使用file2.c中的函数 问题是,如何使用gcc编译file1.c?我使用了gcc file.c,它没有显示对该函数的引用。我想也许我们需要一些链接选项?我想gcc-o myprog file1.c file2.c将尝试为您编译两个文件并将其链接到名为myprog的可执行文件中。如果您只是试图编译一个文件,而没有生成可执行文件,那么您可以

我有两个名为
file1.c
file2.c
的c文件,都包括另一个头文件
file3.h
。我在
file2.c
中定义了一个函数,并在
file3.h
中声明了它。然后我使用
file2.c
中的函数


问题是,如何使用gcc编译
file1.c
?我使用了
gcc file.c
,它没有显示对该函数的引用。我想也许我们需要一些链接选项?

我想
gcc-o myprog file1.c file2.c
将尝试为您编译两个文件并将其链接到名为
myprog
的可执行文件中。如果您只是试图编译一个文件,而没有生成可执行文件,那么您可以使用
gcc-cfile1.c
来编译
file1.c
@Stevevallier嗨,这似乎是可行的。问题是file1.c和file2.c都有一个main函数,因此不能将它们制作成一个可执行文件。我只想分享一些函数定义。但是你说“不生成可执行文件”是什么意思呢?我需要一个可执行文件来执行file1.c中的逻辑。最简单的方法是创建另一个文件,例如
shared.c
,它只包含两个程序使用的函数(并从
file1.c
file2.c
中删除这些函数)然后分别构建每个程序这两个命令:
gcc-oprogram1 file1.c shared.c
gcc-o program2 file2.c shared.c