分类: C/C++
2011-01-04 10:00:29
假设我们分别有两个目录:include和src
其中include中存放的是头文件:hello.h
src中存放的是源文件:main.c和print_hello.c
那么有两种方法来包含头文件:
一、直接在源文件中指定头文件的路径
在main.c中:
#include "../include/hello.h"
在print_hello.c中:
#include "../include/hello.h"
那么在src目录中可以直接编译即可:
gcc -o main main.c print_hello.c
就可以生成可执行文件
或者可以写个Makefile:
objects = main.o print_hello.o
main : ${objects}
gcc -o main ${objects}
main.o : main.c ../include/hello.h
gcc -c main.c
print_hello.o : print_hello.c ../include/hello.h
gcc -c print_hello.c
clean:
@rm *.o main
.PHONY: clean
二、在源文件中不指定头文件路径,而是在编译时指定
在main.c中:
#include "hello.h"
在print_hello.c中:
#include "hello.h"
那么在src目录中需要为gcc指定头文件路径:
gcc -o main main.c print_hello.c -I../include
这样才可以生成可执行文件
或者可以写个Makefile:
objects = main.o print_hello.o
main : ${objects}
gcc -o main ${objects}
main.o : main.c ../include/hello.h
gcc -c main.c
print_hello.o : print_hello.c ../include/hello.h
gcc -c print_hello.c
clean:
@rm *.o main
.PHONY: clean
或者
Makefile也可以这么写:
objects = main.o print_hello.o
main : ${objects}
gcc -o main ${objects}
main.o : main.c
gcc -c main.c -I../include
print_hello.o : print_hello.c
gcc -c print_hello.c -I../include
clean:
@rm *.o main
.PHONY: clean
chinaunix网友2011-01-05 11:05:39
很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com