在 C 中,我如何编译然后创建一个带有头文件和两个 c 文件的可执行文件?

In C how do I compile and then create an executable file with a header and two c files?

我总共有三个C文件。一个是头文件 [.h],两个是源文件 [.c]。

.h文件名为encryption.h,对应的源文件为encryption.cencryption.c 有逻辑,但没有 main() 功能。我的第二个 c 文件名为 main.c。我有 main() 函数,它从 encryption.c.

调用方法

我正在 Mac OSx 上的终端内编译这些文件。我对如何编译这个感到困惑,我尝试了以下方法:

gcc -c main.c
gcc -c encryption.c
gcc -c encryption.h
gcc main.o encryption.o encryption.g.gch -o encrypt

虽然这似乎不起作用,它说我已经有了一个预编译头文件。我试着在网上找到答案,我知道它必须很简单,但我运气不佳。这里有什么问题?

不要编译头文件。头文件应 包含 到源文件中(使用 #include 指令,在 c 中)。只需编译源文件并将它们 link 在一起。像

gcc -c main.c
gcc -c encryption.c
gcc main.o encryption.o -o encrypt

或者,对于 shorthand,

gcc main.c encryption.c -o encrypt

注意:如果您在编译时对头文件存在(或不存在)感到困扰,请检查每个源文件的预处理输出使用 gcc -E 选项。