编译MM.c提示microtime.h: No such file or directory,同目录存在该文件如何解决
问题原因
- 头文件引入语法错误:如果你的
MM.c里写的是#include <microtime.h>,这种尖括号引入方式编译器只会优先搜索系统预设的头文件目录,不会主动搜索当前源文件所在的目录,只有双引号形式#include "microtime.h"才会优先检索本地目录。 - 编译工作目录不匹配:如果你执行编译命令时的终端工作目录不是
MM.c和microtime.h所在的目录,即使使用双引号引入,部分编译器也无法定位到头文件。 - 文件名大小写不匹配:Linux、macOS等类Unix系统的文件系统是大小写敏感的,如果实际文件名是
Microtime.h/MICROTIME.h等大小写不一致的名称,也会触发找不到文件的错误。 - 头文件读取权限不足:
microtime.h的文件权限设置不允许当前执行编译命令的用户读取该文件,也会被编译器判定为文件不存在。
对应解决方法
- 修正头文件引入语法:将
MM.c中对应行改为#include "microtime.h"。 - 编译时添加当前目录到头文件搜索路径:执行编译命令时加上
-I.参数,比如gcc MM.c -o MM -I.,强制编译器将当前工作目录加入头文件搜索列表。 - 核对文件名大小写:确认
microtime.h的文件名大小写和代码中引入的写法完全一致,类Unix系统下可以用ls命令查看当前目录下的准确文件名。 - 修正文件权限:执行
chmod 644 microtime.h给所有用户开放该文件的读权限后再尝试编译。
内容的提问来源于stack exchange,提问作者TMI- The Moester Incorporation
相关产品推荐
相关产品推荐

