我总共有三个C文件。一个是头文件,两个是源文件。.h
文件称为.c
,相应的源文件称为.h
。encryption.h
有逻辑,但没有功能。我的第二个c文件叫做encryption.c
。这里有一个encryption.c
函数,它从main()
调用方法。
我正在MacOSX上的终端中编译这些文件。我对如何编译这个感到困惑,我尝试了以下操作:
gcc -c main.c
gcc -c encryption.c
gcc -c encryption.h
gcc main.o encryption.o encryption.g.gch -o encrypt
但这似乎不起作用,它说我已经有一个预编译头。我试着在网上找到答案,我知道答案一定很简单,但我运气不太好。这里有什么问题?
最佳答案
不要编译头文件。头文件应该包含在源文件中(使用#include
指令,在c
中)。只需编译源文件并将它们链接在一起。有点像
gcc -c main.c
gcc -c encryption.c
gcc main.o encryption.o -o encrypt
或者,作为速记,
gcc main.c encryption.c -o encrypt
注意:如果您在编译时担心头文件的存在(或不存在),请使用
gcc -E
选项检查每个源文件的预处理输出。