你好,我的 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
)