こんにちは、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
)