在 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.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
虽然这似乎不起作用,它说我已经有了一个预编译头文件。我试着在网上找到答案,我知道它必须很简单,但我运气不佳。这里有什么问题?
不要编译头文件。头文件应 包含 到源文件中(使用 #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
选项。
我总共有三个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
虽然这似乎不起作用,它说我已经有了一个预编译头文件。我试着在网上找到答案,我知道它必须很简单,但我运气不佳。这里有什么问题?
不要编译头文件。头文件应 包含 到源文件中(使用 #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
选项。