【发布时间】:2016-10-06 21:02:56
【问题描述】:
【问题讨论】:
-
您用于编译程序的确切命令是什么?
-
gcc main.c。我需要先 gcc 头文件和其他源文件吗?
-
你的“编译命令”是什么?
-
您需要将文本发布为文本,而不是图像!
标签: c compilation
【问题讨论】:
标签: c compilation
您有源文件card.c、deck.c 和main.c。可以合理地假设card.c 和deck.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 的名称。
【讨论】:
您应该将所有 .c 文件作为输入输入到gcc。您可以通过 Google 找到大量 gcc 文档。例如:http://www.network-theory.co.uk/docs/gccintro/gccintro_11.html。
【讨论】: