ピントのインストール中にmake
を実行しなければなりませんでした。同じコンピュータ上で異なるコマンドを実行するMakefile
以下はMakefileです。
all: setitimer-helper squish-pty squish-unix
CC = gcc
CFLAGS = -Wall -W
LDFLAGS = -lm
setitimer-helper: setitimer-helper.o
squish-pty: squish-pty.o
squish-unix: squish-unix.o
clean:
rm -f *.o setitimer-helper squish-pty squish-unix
1台のコンピュータで正しく実行されました。両方make
コマンドの出力の最初の行を見た場合
gcc -Wall -W -c -o setitimer-helper.o setitimer-helper.c
gcc -lm setitimer-helper.o -o setitimer-helper
gcc -Wall -W -c -o squish-pty.o squish-pty.c
gcc -lm squish-pty.o -o squish-pty
gcc -Wall -W -c -o squish-unix.o squish-unix.c
gcc -lm squish-unix.o -o squish-unix
を(コマンドの出力は、以下に与えられる)が、他のコンピュータに私は次のエラー
gcc -lm setitimer-helper.o -o setitimer-helper
setitimer-helper.o: In function `main':
setitimer-helper.c:(.text+0xc9): undefined reference to `floor'
collect2: error: ld returned 1 exit status
<builtin>: recipe for target 'setitimer-helper' failed
make: *** [setitimer-helper] Error 1
を得
gcc -Wall -W -c -o setitimer-helper.o setitimer-helper.c
および
gcc -lm setitimer-helper.o -o setitimer-helper
彼らは異なっています。
なぜmake
が同じMakefileに対して異なるコマンドを実行しているのですか?エラーを取り除くにはどうすればよいですか?
第2のコンピュータでは、ビルドされたバイナリが既に存在していたようです。作業ディレクトリは両方のコンピュータにマウントされた共有パーティションですか?あるいは、最初に 'make'して、バイナリを含むすべてを2番目のものにコピーしましたか? 2台のコンピュータは同じですか(同じハードウェアと同じソフトウェアがインストールされていますか? –