现study目录有三个目录:src、include、obj
src目录下有main.c、func1.c
include目录下有func1.h
//main.c #include "func1.h" #include <stdio.h> int main() { func1(); printf("this is main\n"); return 0; }
//func1.c void func1()
{ printf("this is func1\n"); return ; }
//func1.h void func1();
#include ""
1. 表示从包含该头文件的文件(即main.c所在的路径)所在路径下找
2. 如果没找到就从系统所指定的默认路径下找(如usr/include或usr/local/include)
很显然,在main.c中#include "func1.h",func1.c既不在main.c所在的路径,又不在系统的默认路径,
所以在编译时需要我们手动去指定头文件所在的路径。
当前在study目录下,即用gcc -c -Wall ./src/main.c -I(大写的i) ./include -o ./obj/main.o。这样就可以手动指定头文件的路径,在编译和汇编阶段就不会报错
-I(大写的i) ./include 在编写makefile中指定不同路径下的头文件很重要
#include <>
直接去系统所指定的默认路径下找头文件
标签:func1,include,头文件,区别,路径,main,目录 From: https://www.cnblogs.com/zj-studyrecoding/p/17310025.html