致命错误,没有这样的文件或目录

致命错误,没有这样的文件或目录

你好,我的 Linux 终端线路有问题。所以我尝试将文件编译为 .o 像这样

gcc -c palindrome.c

错误是

palindrome.c:2:21: fatal error: reverse.h: No such file or directory
compilation terminated.

文件reverse.h确实在该目录中,因为我将所有内容从lab2目录复制到lab 3。那么为什么这么说呢?谢谢您的帮助

cscstuff@ubuntu:~/inlab2$ ls -l
total 32
-rwxrwxr-x 1 cscstuff cscstuff 8784 Oct  1 08:26 main1
-rw-rw-r-- 1 cscstuff cscstuff  338 Oct  1 08:20 main1.c
-rw-rw-r-- 1 cscstuff cscstuff 1888 Oct  1 08:24 main1.o
-rw-rw-r-- 1 cscstuff cscstuff  204 Oct  1 08:26 reverse.c
-rw-rw-r-- 1 cscstuff cscstuff   84 Oct  1 08:19 reverse.h
-rw-rw-r-- 1 cscstuff cscstuff 1472 Oct  1 08:26 reverse.o
cscstuff@ubuntu:~/inlab2$ cd
cscstuff@ubuntu:~$ cd inlab3
cscstuff@ubuntu:~/inlab3$ ls -l
total 16
drwxrwxr-x 2 cscstuff cscstuff 4096 Oct  1 08:33 inlab2
-rw-rw-r-- 1 cscstuff cscstuff  247 Oct  1 09:21 main2.c
-rw-rw-r-- 1 cscstuff cscstuff  297 Oct 15 11:01 palindrome.c
-rw-rw-r-- 1 cscstuff cscstuff   51 Oct  1 08:34 palindrome.h
cscstuff@ubuntu:~/inlab3$ gcc -c palindrome.c
palindrome.c:2:21: fatal error: reverse.h: No such file or directory
compilation terminated.
cscstuff@ubuntu:~/inlab3$ 

答案1

inlab3任一

  • 添加-I../inlab2到编译器(例如gcc -I../inlab2 -c palindrome.c,这将告诉 gcc 在 ../inlab2 中查找头文件)

  • 在包含行中使用#include "../inlab2/reverse.h"(这将给出头文件的相对路径)

  • 复制自inlab2 cp ../inlab2/reverse.h .(这将使头文件的副本在 中可用inlab3

相关内容