ショボ短歌会

以下の# compilationのところなんですが、-lip -limage -ltiff -lm
というオプションの意味と、$@という表記の意味、/bin/cpがどんなコマンドなのか、$(CC)の行と/bin/cpの行はどのようなつながりなのか、こんがらかってしまいました。どなたか教えていただけないでしょうか。

#
# xconv Makefile
#
# Practical Algorithms for Image Analysis
#
# Copyright (c) 1997, 1998, 1999 MLMSoftwareGroup, LLC
#

SHELL = /bin/sh
NULL =
CC = /usr/bin/gcc
HOME = ../..
BIN = $(HOME)/binlin
IPATH = -I. -I$(HOME)/libtiff/libtiff -I$(HOME)/libimage -I$(HOME)/libip
LPATH = -L$(HOME)/libtiff/libtiff -L$(HOME)/libimage -L$(HOME)/libip
COPTS = -g -O

# OPTIONAL DEFINES #################################
DEFOPTS = -DLINUX

# SET CC COMPILE FLAGS #############################
CFLAGS = $(COPTS) $(IPATH) $(DEFOPTS)

CC = /usr/bin/gcc

LIB_TIFF=$(HOME)/libtiff/libtiff
LIB_IMAGE=$(HOME)/libimage
LDFLAGS=$(OPTIONS)

XCONV = xconv

# EXECUTABLES #######################################

EXECS = $(XCONV)

# OBJECT FILES #####################################

XCONVO = xconv.o

# COMPILATION ######################################

all: $(EXECS)

$(XCONV): $(XCONVO)
$(CC) $(COPTS) $(XCONVO) $(LPATH) -lip -limage -ltiff -lm -o $@
/bin/cp $@ $(BIN)

# HEADER DEPENDENCIES ###############################
HDRS =$(HOME)/libimage/tiffimage.h \
$(HOME)/libimage/draw.h \
$(NULL)

$(XCONVO):$(HDRS)

clean:
rm -f $(EXECS) *.o *.a core

# START OVER ########################################
new:
rm -f $(EXECS) *.o *.a core
make

A 回答 (2件)

>-lip -limage -ltiff -lm というオプションの意味


これらはCコンパイラに渡すリンカオプションです。
つまりそれぞれ、ip, image, tiff, mというライブラリをリンク対象とするわけです。

>$@という表記の意味
ターゲット名に置換されるmakeのマクロです。
この場合$(XCONV)に置換され、更にxconvになります。

>/bin/cpがどんなコマンドなのか
Unixの基礎中の基礎である、コピーコマンドです。

>$(CC)の行と/bin/cpの行はどのようなつながりなのか
ターゲット名をmakeするに当たって、この場合は先ず$(CC)の行を実行した後、/bin/cpの行を実行するということです。

>こんがらかってしまいました
些か基礎知識が足りないだけの気もしますが。
makefileを読むには、Unixの基礎知識と最低限のコンパイラの使い方の知識は必要です。
ここに挙げた情報は、恐らくUnixプログラミング初心者向けの本に書いてあるような内容ですから、
一冊くらい眺めてからこのmakefileを読めば他の行も何をやっているのか判ると思います。
    • good
    • 0
この回答へのお礼

助かりました。本当にありがとうございます。

UNIX SUPER TEXTを読み返しておりました。makefileの節じゃなく、ccの説明を読んでいたら該当箇所が出てきました。
cpというコマンドはしょっちゅう使っていますが、改めて/bin/cpと書かれていたのでとまどってしまいました。

お礼日時:2006/11/09 15:52

GNU MAKEの参考サイトです。



参考URL:http://www.c.csce.kyushu-u.ac.jp/~seiichirou/wik …
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!