2012-01-06 118 views
0

我有四个包含C代码的文件。编译多个源文件

Headers.h - (包含所有必要的)头

AddStudent.h - 该文件包括Headers.h还介绍了一些功能代表团

AddStudent.c - 包含AddStudent.h

main.c描述的功能 - 包含main()

问题是如何用cc编译代码?

+1

'cc main.c -o main -I.' BUT函数的实现应该留在C文件中,所以AddStuden.h实际上应该是AddStudent.cpp,因为它们是AddStudent.h函数的实现。在这种情况下,你需要:'cc main.c AddStudent.c -o main -I.' – karlphillip 2012-01-06 18:49:56

+1

作业应该被标记为作业 – pm100 2012-01-06 18:50:25

+0

我假设你的意思是addstudent.c(以及addstudent.h) – pm100 2012-01-06 18:51:00

回答

2

在你的情况,你可能只需要:

cc main.c AddStudent.c 

要做的就是让一个makefile。这里有一个(可能有点幼稚)例如:

myapp: main.o AddStudent.o 
    cc -o myapp main.o AddStudent.o 

main.o: main.c AddStudent.h Headers.h 
    cc -c -o main.o main.c 

AddStudent.o: AddStudent.c AddStudent.h Headers.h 
    cc -c -o AddStudent.o AddStudent.c 

最好的地方,了解makeGNU Make Manual

奖励注释 - 如果您开始学习C,您可能需要查看clang。除了支持没有特殊标志的C99以及编译速度更快之外,它给出了比gcc更好的错误消息

+0

你可以推荐我使用什么命名约定? – summerc 2012-01-06 18:52:57

+0

我觉得现在很好 - 你原来的文章有一个错字,让它看起来很奇怪。 – 2012-01-06 18:54:25

+0

这有点吓人。如果我有> 20 .h/.c文件,会很痛苦。 – summerc 2012-01-06 18:54:42