【发布时间】:2015-04-15 12:16:32
【问题描述】:
我一共有三个 C 文件。一个是头文件[.h],两个是源文件[.c]。
.h 文件名为encryption.h,对应的源文件为encryption.c。 encryption.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
这似乎不起作用,它说我已经有一个预编译头文件。我尝试在网上找到答案,我知道它必须很简单,但我没有太多运气。这里有什么问题?
【问题讨论】:
-
gcc -c encryption.h----> 你不编译头文件。 -
谢谢@SouravGhosh。解决这个问题的适当方法是什么?
-
只是不编译头文件,不链接预编译的头文件,只链接源文件生成的目标文件。
-
我不知道,显然用 gcc 编译的 .h 文件会发生什么......
-
从我在网上查到的,它们是用于在某些方面优化性能的预编译头文件。 @JoachimPileborg
标签: c macos gcc compilation header