c - 使用源文件和标头编译主文件

时间:2016-10-06 21:02:56

标签: c compilation

我正在尝试编译使用标头的主文件。我有我目录中的所有文件:card.c,deck.c header.h和main.c enter image description here

问题在于,当我做gcc main.c时,我得到了这个:enter image description here

似乎它没有识别源文件和头文件,因此我的编译命令缺少某些东西。感谢

2 个答案:

答案 0 :(得分:1)

您有源文件card.cdeck.cmain.c。假设card.cdeck.c各自定义函数是合理的,其中至少有一个函数由main.c中的某个函数调用,否则就不需要header.h 。据推测,链接错误中指定的函数就属于这些函数。

命令

gcc main.c

尝试编译main.c中的代码并将其链接以形成完整的程序,但这对于完整的程序来说还不够,因为在其他源文件中定义(实现)了一些所需的函数。这就是链接器抱怨的内容。

如果要将main.c编译为目标文件但不链接它,则需要-c选项:

gcc -c main.c

如果你想用gcc一次运行来构建一个完整的程序,那么你必须指定所有需要的来源:

gcc main.c deck.c card.c

在后一种情况下,您可能还希望使用-o选项为可执行文件指定与a.out不同的名称。

答案 1 :(得分:0)

您应该将所有.c文件作为输入gcc。您可以在Google上找到许多关于gcc的文档。例如:http://www.network-theory.co.uk/docs/gccintro/gccintro_11.html

相关问题