안녕하세요, Linux 터미널 라인에 문제가 있습니다. 그래서 이렇게 파일을 .o로 컴파일해 보았습니다.
gcc -c palindrome.c
오류는 다음과 같습니다
palindrome.c:2:21: fatal error: reverse.h: No such file or directory
compilation terminated.
lab2 디렉터리의 모든 내용을 lab 3으로 복사했기 때문에 reverse.h 파일은 실제로 해당 디렉터리에 있습니다. 그럼 왜 그런 말을 하는 걸까요? 당신의 도움에 감사드립니다
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
)