如何一起编译头文件和C文件?

时间:2018-03-17 10:23:42

标签: c header-files

我创建了一个file.h和一个file.c如何在Ubuntu上编译它们?

3 个答案:

答案 0 :(得分:2)

您只需要编译.c个文件,而不是.h个文件。

要在Ubuntu上编译file.c,您可以使用GCC

gcc file.c -o my_program

...或Clang

clang file.c -o my_program

可以预编译头文件,但在特定情况下只需要预编译头。 More information here.

如果file.hfile.c不在同一文件夹中,您可以使用GCC或Clang的-I选项。

file.h文件夹中的include/示例:

gcc -I include/ file.c -o my_program

file.c中你仍然有这条指令,只有文件名:

#include "file.h"

答案 1 :(得分:2)

您还可以通过使用makefile来使用更通用的方法。

以下是此类文件的简短示例:

# Declaration of variables
CC = gcc
CC_FLAGS = -w -Werror -Wall

# File names
# "prgoram" will be the name of the output produced from the make process
EXEC = program 
#Incorporates all the files with .c extension
SOURCES = $(wildcard *.c)
OBJECTS = $(SOURCES:.c=.o)

# Main target
$(EXEC): $(OBJECTS)
    $(CC) $(OBJECTS) -o $(EXEC)

# To obtain object files
%.o: %.c
    $(CC) -c $(CC_FLAGS) $< -o $@

# To remove generated files
clean:
    rm -f $(EXEC) $(OBJECTS)

要使用此实用程序,只需确保文件本身位于包含源文件的目录中,其名称为&#34; makefile&#34;或&#34; Makefile&#34;。 要编译代码,只需从工作目录中运行以下命令:

   make program

此命令将自动将工作目录中的所有源文件链接到一个名为&#34; program&#34;的可执行文件中。要运行程序本身,只需使用命令:

  ./program

要清理项目和创建的可执行文件,您可以运行命令:

  make clean

在处理包含大量源文件的较大项目时,makefile非常强大。 Here您可以查看有关如何使用makefile的更多指导。 This is也是关于该主题的非常详细的教程。

答案 2 :(得分:1)

使用以下命令编译程序(对于GCC编译器):

gcc file.c -o file

无需编译file.h文件。